我对到处都需要活动/应用程序有一点问题......
更准确地说,我有这样定义的类:
public class MyApp extends Application {
private static Activity currentActivity;
private static MyApp instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static void setCurrentActivity(Activity activity) {
currentActivity = activity;
}
}
我有一个这样的扩展活动:
public class MyActivity extends Activity {
....
@Override
public void onResume() {
super.onResume();
MyApp.setCurrentActivity(this);
}
....
@Override
public void onDestroy() {
super.onDestroy();
MyApp.setCurrentActivity(null); // for nullifying static reference
}
}
我的问题是:
- 上面的代码片段公平吗?
- 我应该
super.onDestroy();
在之后使用MyApp.setCurrentActivity(null);
来验证活动没有成功引用和销毁吗? - 最重要的是,静态引用实例呢?我在哪里可以取消它以不阻止 GC ?
谢谢。