2

Androidでアプリを強制終了するには?

killPackageProcesses(services.get(i).baseActivity.getPackageName());

これは関数 killPackageProcesses です

public void killPackageProcesses(String packagename) {
    int pid = 0;
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> pids = am
            .getRunningAppProcesses();
    for (int i = 0; i < pids.size(); i++) {
        ActivityManager.RunningAppProcessInfo info = pids.get(i);
        if (info.processName.equalsIgnoreCase(packagename)) {
            pid = info.pid;
        }
    }
    android.os.Process.killProcess(pid);

}

うまくいきません。他のアプリではどのように機能しますか? 許可が書かれています。

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
4

1 に答える 1

3

Android では、プロセスを強制終了することはできません。のドキュメントProcessから:

この API を使用すると、PID に基づいて任意のプロセスを強制終了するように要求できますが、カーネルは、実際に強制終了できる PID に標準的な制限を課します。通常、これは、呼び出し元のパッケージ/アプリケーションを実行しているプロセスと、そのアプリによって作成された追加のプロセスのみを意味します。共通の UID を共有するパッケージは、互いのプロセスを強制終了することもできます。

また、マニフェストで要求しているアクセス許可が、思ったように機能しないことにも注意してください。ドキュメントによると、KILL_BACKGROUND_PROCESS

アプリケーションが killBackgroundProcesses(String) を呼び出すことを許可します。

于 2013-08-12T17:00:09.463 に答える