使用するクラス・メソッド
ActivityManagerクラスには、Android OS 2.2(API level 8)から
ActivityManager#killBackgroundProcesses
というメソッドが追加されました。
http://developer.android.com/reference/android/app/ActivityManager.html#killBackgroundProcesses(java.lang.String)
引数に渡したpackageName(String)のアプリケーションをkillする処理を行ってくれるようです。
ただ実行しているアプリ自身は終了できません。
アプリのパッケージ名取得
端末にインストールされたアプリのパッケージ名を取得してみましょう。
PackageManager pm = getPackageManager();
List<ApplicationInfo> list = pm.getInstalledApplications(0);
for (int i = 0; i < appList.size(); i++) {
Log.d("installApp",appListSize.get(i).packageName);
}
取得できているようです
アプリのパッケージ名を指定してアプリをkillさせる
ActivityManager#killBackgroundProcessesにpackageNameを渡して実際に使ってみます。
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
ActivityManager activityManager = ((ActivityManager) getSystemService(ACTIVITY_SERVICE));
PackageManager pm = getPackageManager();
List<ApplicationInfo> appList = pm.getInstalledApplications(0);
for (int i = 0; i < appList.size(); i++){
activityManager.killBackgroundProcesses(appList.get(i).packageName);
}
終了されたか確認する
実行前に色んなアプリを起動してHomeボタンを押してサスペンドしておいてください。
その後、アプリを実行してバックグラウンドで待機状態にしてあったアプリを立ち上げてみてください。
新たにアプリが立ち上がり、killされていることが確認できたでしょうか?