Dee*_*pak -1 android base abstract android-activity
这个问题专门针对Android和使用Activity可以由所有其他活动扩展的基础。总的来说,我了解 Java 的使用和功能abstract classes。我的情况是,我有一个基本活动,其中包含一些常用常量、函数并实现了一些Interfaces. 我的问题是应该这样abstract还是我可以让它保持正常Activity。是否有特定的原因abstract。
//Standard BaseActivity
public abstract class BaseActivity extends Activity {
//common code
}
//Usage
public class MyActivity extends BaseActivity {
}
Run Code Online (Sandbox Code Playgroud)
如果我将 BaseActivity 定义如下,这似乎也有效
//Non Abstract Class
public class BaseActivity extends Activity {
}
Run Code Online (Sandbox Code Playgroud)
因此,问题是否有使用抽象的特定原因。在这两种情况下,我都没有在 Manifest 中定义 BaseActivity。
可以参考以下方式定义BaseActivity。
在 android 项目中创建 baseActivity 一直是个好主意。
什么,我建议是从 android.app.Activity 创建一个名为 baseActivity 的活动,并使 3 个自定义活动从 baseActivity 扩展。
例如,
public abstract class MyAppBaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
Run Code Online (Sandbox Code Playgroud)
和您的自定义活动
public class MyCustomActivity extends MyAppBaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,MyAppBaseActivity 是一个抽象类。原因是,我们不会实例化它。这就是您不需要在 AndroidManifest.xml 文件中添加 MyAppBaseActivity 类的原因。
现在的问题是,你为什么要这样做?意思是,为什么你需要创建一个 baseActivity 类,然后将你的其他活动作为它的子类?
嗯,这里有几个非常普遍的原因
1.您可以避免应用程序明智的常见 ui 任务的代码重复。假设您想在不同的活动中显示 progressDialog。只需编写代码以在您的 baseActivity 中显示一个 progressDialog 并从其他活动调用该方法。
2.您的应用程序菜单应该在不同的应用程序中保持一致。例如,您有一个设置屏幕。选项菜单包含导航到设置屏幕。您应该在整个应用程序中显示设置,这意味着无论活动如何。用户希望从应用程序的任何位置访问设置屏幕。此功能很容易实现,但您必须在每个活动中覆盖 onCreateOptionsMenu ,或者您可以在 baseActivity 中覆盖一次。
| 归档时间: |
|
| 查看次数: |
3702 次 |
| 最近记录: |