如果我们希望持有某些Activity的引用,不希望该Activity被销毁,我们在Application中将这些Activity保存到List中。
public synchronized static void register(Activity activity){
if(activityList!=null){
for(int i=0;i<activityList.size();i++){
Activity ac=activityList.get(i);
if(ac.getClass().getName()==activity.getClass().getName()){
//删除旧的,添加新的
activityList.remove(ac);
if(!ac.isFinishing()){
ac.finish();
}
break;
}
}
activityList.add(activity);
}
}
public synchronized static void unregister(Activity activity){
if(activityList!=null && activityList.size()!=0){
for(int i=0;i<activityList.size();i++){
Activity ac=activityList.get(i);
if(ac.getClass().getName()==activity.getClass().getName()){
activityList.remove(activity);
if(!ac.isFinishing()){
ac.finish();
}
}
}
}else{
Log.i("TAG", "No Activity in Pool");
}
}
原文:http://blog.csdn.net/u010852801/article/details/45287925