0

5 秒ごとにアクティブになるタイマー タスクを作成するサービスを作成しました。次に、実行中のプロセスを確認するだけで、実行したくないアプリケーションのパッケージのリストが表示されます。したがって、それらを一致させて実行中の不要なアプリケーションを見つけたら、「Kill​​Application」というアクティビティを起動し、そのパッケージを渡して強制終了します。しかし、必要なパッケージを殺しているわけではありません。私を助けてください。

public class killApplication extends Activity {

    private DBAdapter db;
    private Context _context;
    String nameOfProcess = "com.android.email";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        _context = this;
        if (getIntent().hasExtra("application")) {
            nameOfProcess = getIntent().getStringExtra("application");
        }
        Log.d("Process Passed", nameOfProcess);
        ActivityManager manager = (ActivityManager) _context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo process : listOfProcesses) {
            Log.e("Process Running", process.processName);
            if (process.processName.contains(nameOfProcess)) { // Ends the app
                android.os.Process.killProcess(process.pid);
                Log.d("Killing Process", nameOfProcess + " : " + process.pid);
                manager.restartPackage(process.processName);
                break;
            }
        }
        finish();
    }

}

また、マニフェスト ファイルにアクセス許可を含めました。

4

1 に答える 1

0

強制終了したパッケージを再起動するのはなぜですか? (manager.restartPackage(プロセス.プロセス名);)

そして私はこれを追加すると言います:

activityManager.killBackgroundProcesses(String.valueOf(process.processName));
activityManager.killBackgroundProcesses(String.valueOf(process.pid));

android.os.process.killprocess 行の上に。:)

これをマニフェストに追加することも忘れないでください:

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

PS: これはあまりにも頻繁で、バッテリーを消耗します。私の2セント

于 2012-06-28T17:48:15.163 に答える