【发布时间】:2013-10-22 23:21:12
【问题描述】:
我开始学习 android 框架,我最大的问题是 Activity 生命周期。因此,当用户旋转屏幕时,我的应用程序就会崩溃。据我了解,除了正常的活动生命周期之外,Android 为我破解了一个强制实例删除和部分恢复服务,这不是错误,而是一项功能。
所以我只想让我的成员变量保持安全,所以我想开始将它存储在 Application 类中。
所以我想通过以下方式重构我的程序:
我创建一个自己的应用程序
public class MainApp extends Application {
LoginActivityData loginActivityData; // create data "segment" for every activity
FirstActivityData firstActivityData;
...
public static MainApp getInstance(final Context context) {
if (context == null) return null;
final Context app = context.getApplicationContext();
return app instanceof MainApp ? (MainApp) app : null;
}
}
在活动和片段中,我停止使用除 MainApp 类中的成员变量之外的成员变量。
public class LoginActivity extends Activity {
LoginActivityData loginActivityData;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loginActivityData = MainApp.getInstance(this).loginActivityData;
}
这种设计有什么缺点吗?
【问题讨论】:
标签: android design-patterns android-activity android-lifecycle