2017-04-14 9 views
0

私は現在のタスクを殺す方法を見つけようとしていますMarshmallow私はすでに2つの方法がありますが、両方がうまくいけばアンドロイド4.0.3とアンドロイド5.0.1アンドロイド6.0.1にしようと彼女は解決のために、この問題を任意のアイデアを動作しない、どのように現在実行中のタスクをアンドロイドで殺す

List<ApplicationInfo> packages; 
      PackageManager pm; 
      pm = getPackageManager(); 
      //get a list of installed apps. 
      packages = pm.getInstalledApplications(0); 
      ActivityManager mActivityManager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
      String myPackage = getApplicationContext().getPackageName(); 
      for (ApplicationInfo packageInfo : packages) { 
       if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue; 
       if(packageInfo.packageName.equals(myPackage)) continue; 
       mActivityManager.killBackgroundProcesses(packageInfo.packageName); 
      } 

と、この方法を:!

ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
      for (ActivityManager.RunningAppProcessInfo pid : am.getRunningAppProcesses()) { 
       am.killBackgroundProcesses(pid.processName); 
      } 

答えて

0

があなたの第二の方法でこれを使用してみてください。

android.os.Process.killProcess(pid); 

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

android.os.Process.myPid(); 
+0

感謝を使用して、アプリケーションIDを取得をお勧めしますhere

から考えると、あなたは、説明を編集 –

+0

多くを説明することができます –

関連する問題