現狀:
如果退出的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是否有目前的生活實例,以便我們可以製作一個saf e調用OtherActivity.clearAllData()?
什麼代碼試圖做的事:
退出應用程序,並返回到它後,一些的ArrayList仍然有一些舊的數據,並因此新的數據(一式兩份)被堆放在上面。此代碼嘗試從主活動的onDestroy()上的ArrayList清除數據,以便稍後返回到應用程序時不會有舊數據。
感謝您的反饋Grimmace。我會試一試。我使用的是類方法來調用另一個活動的方法和傳遞數據前/後(可能不是這樣做,但最好的方法...) – sean 2011-12-19 22:53:25
更新:已停止了NullPointerException異常,但是在失敗後清除陣列數據成功應用quit..The問題正從問題的範圍遠所以我就接受你的答案,並重新考慮的辦法。再次感謝。 – sean 2011-12-19 22:56:11
我會去了解一下'SharedPreferences'。這是在類之間傳遞數據的簡單方法。還加入'Extras'你'Intents'可以是很有益的,如果你不希望數據是持久的。 – Grimmace 2011-12-19 22:56:11