【发布时间】:2011-12-19 22:22:17
【问题描述】:
情况:
当退出 android 应用程序的主要活动时,我希望在活动的活动实例上调用一个方法,以使它们清除数组中的数据(以便在返回应用程序时数组尚未填充)。
在 MainActivity.java 中
// ...
@Override
public void onDestroy() {
super.onDestroy();
// call method to clear an array list of its data
// NullPointerException here if OtherActivity has no current living instance
OtherActivity.clearAllData();
}
在 OtherActivity.java 中
// ...
private static ArrayList <String> myStringCollection;
// ...
public static void clearAllData(){
if(myStringCollection.size() > 0){
myStringCollection.clear();
Log.d(TAG, "clearing data in OtherActivity");
}
}
问题:
我们如何知道 OtherActivity 是否有当前的活动实例,以便我们可以安全地调用 OtherActivity.clearAllData() ?
代码尝试做什么:
退出应用程序并返回后,一些 ArrayLists 中仍然有旧数据,因此新数据(重复) 堆叠在顶部。这段代码尝试在主Activity的onDestroy()上清除ArrayLists中的数据,这样以后返回app时就没有旧数据了。
【问题讨论】:
标签: java android android-activity nullpointerexception