繁体   English   中英

如何知道当前是否有活动实例?

[英]How to know if there is an Activity Instance currently living?

情况:
当退出Android应用程序的主要活动时,我希望在Activity的活动实例上调用一个方法,使它们在数组中清晰显示( 这样在返回应用程序时数组就不会被填充 )。

在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仍然有旧数据,因此新数据(重复)堆叠在顶部。 此代码尝试从主活动的onDestroy()上的ArrayLists中清除数据,以便以后返回应用程序时不会有旧数据。

您的代码当前正在使用静态变量。 静态变量附加到ClassLoader而不是ClassLoader的实际实例。 这意味着您实际上并不需要有效的生活实例来执行上述操作。 只需使用myStringCollection != null类的检查来保证您的变量已经初始化并且您应该没问题。

请注意,请说明您是否确实要访问非静态变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM