一、Activity的回收
針對多個activity退出的處理ide
關鍵代碼:
一、新建活動管理類:this
public class ActivityCollector { private static List<Activity> activityList = new ArrayList<Activity>(); public static void addActivity(Activity activity){ activityList.add(activity); } public static void removeActivity(Activity activity){ activityList.remove(activity); } public static void finishAllButLast(){ Activity activity = activityList.get(activityList.size()-1); removeActivity(activity); for (Activity activityItem: activityList){ if (!activityItem.isFinishing()){ activityItem.finish(); } } activityList.clear(); activityList.add(activity); } //退出全部activity public static void finishAll(){ for (Activity activity: activityList){ if (!activity.isFinishing()){ activity.finish(); } } activityList.clear(); } }
二、建立基類BaseActivity,並使全部的activity繼承自該基類 。在建立時,添加到活動管理器,銷燬時,從活動管理器中移除。spa
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } }
若是須要銷燬全部activity,只需調用finishAll()便可code