ActivityManager
public List<ActivityManager.AppTask> getAppTasks ()
Added in API level 21
Get the list of tasks associated with the calling application.
Returns
- The list of tasks associated with the application making this call.
================================================================
ActivityManager.AppTask(Added in API level 21)
public void finishAndRemoveTask ()
Added in API level 21
Finishes all activities in this task and removes it from the recent tasks list.
所以下面的方法,可以销毁当前应用所有Activity并且将此任务从最近任务列表中移除。
List<AppTask> appTasks = mActivityManager.getAppTasks();
for (AppTask at : appTasks) {
at.finishAndRemoveTask();
}
请注意,以上API是在API21 新引入的,21以下版本将不能使用。
Application
public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)
Added in API level 14
Application.ActivityLifecycleCallbacks
abstract void | onActivityCreated( Activity activity, Bundle savedInstanceState) |
abstract void | onActivityDestroyed( Activity activity) |
在API21 以下可以用Application注册Activity生命周期回调,进行Activity管理。
private static List<Activity> activities = new ArrayList<Activity>();
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if(!activity.isChild()){
activities.add(activity);
}
}
@Override
public void onActivityDestroyed(Activity activity) {
if(!activity.isChild()){
activities.remove(activity);
}
}
结合 http://www.cnblogs.com/zhujiabin/p/5674982.html 可以较好的实现App应用程序的退出。