今天无意中在群里讨论起完全退出App的问题,纠结了很久这个System.exit(0)是否能退出程序的问题,
下面是群友:Jafir提供的参考资料:
http://www.cnblogs.com/lesliefang/p/3933640.html
http://yangguangfu.iteye.com/blog/1906601
另外
System.exit(0);与android.os.Process.killProcess(android.os.Process.myPid());
两个方法退出不了程序,这里感谢群友_Berial_提供的完全退出App的代码,下面分享下:
完全退出App的方法:
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
ActivityCollector.finishAll();
ActivityManager activityMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.killBackgroundProcesses(context.getPackageName());
System.exit(0);
} catch (Exception ignored) {}
}
附上自己写的ActivityCollector:
public class ActivityCollector {
public static LinkedList<Activity> activities = new LinkedList<Activity>();
public static void addActivity(Activity activity)
{
activities.add(activity);
}
public static void removeActivity(Activity activity)
{
activities.remove(activity);
}
public static void finishAll()
{
for(Activity activity:activities)
{
if(!activity.isFinishing())
{
activity.finish();
}
}
}
}
好了,记录完毕~
ps:差点漏掉这ActivityCollector的用法:
我们在Activity的onCreate( )方法中调用addActivity添加Activity
在onDestory( )方法中调用removeActivity移除Activity!!!
谢谢ben0612的提醒~