當我在網上找“android 如何完全退出應用程序時”十有八九都是
android.os.Process.killProcess(android.os.Process.myPid());
又或者是
System.exit(0);
但這些未必對每一個應用程序都有效果。
當你的應用程序中有很多Activity ,有很多Service,有很多線程,你就不要指望能通過以上方法來完全關閉你的進程了,當然還有其他幾種方法我沒有試,
但是估計都不行。
原因就在於android應用程序的管理機制限制的,包括service在內都是關閉後會在後臺自啓動的。
廢話不多說,解決辦法有兩步
1.看下AndroidManifest.xml裏面註冊的廣播,如果應用程序被kill掉後接受到此類廣播還是會restart的
2.在
android.os.Process.killProcess(android.os.Process.myPid());
後加入如下代碼
ActivityManager activityMgr= (ActivityManager) getSystemService(ACTIVITY_SERVICE );
activityMgr.killBackgroundProcesses(getPackageName());
同時AndroidManifest.xml裏面加入權限
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />