Положение: При выходе из основного действия приложения для Android я хочу вызвать метод для живых экземпляров Activity, чтобы они очищали данные в массивах (, чтобы массивы еще не заполнялись при возврате в приложение ).
In 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();
}
In 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 ()?
Что пытается сделать код: После выхода из приложения и возврата к нему в некоторых списках ArrayList все еще хранятся старые данные, и в результате новые данные (дубликаты) накладываются сверху.Этот код пытается очистить данные из ArrayLists в onDestroy () основного действия, чтобы при возвращении в приложение старые данные отсутствовали.