2012-02-17 10 views
1

私は2つの異なるアプリを持っています、この仮説は2つのアプリはAとBです。Aアプリでは多くのサービスがあります、私のタスクはBのメソッドを使用してAのサービスを殺したいですAとBはAPKではない、異なるアプリです。他のアプリで1つのアプリのサービスを終了

i used : 
ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
    List<RunningAppProcessInfo> activityes = ((ActivityManager) manager).getRunningAppProcesses(); 

    for (int i = 0; i < activityes.size(); i++){ 

     Log.e("APP: "+i, activityes.get(0).processName); 

     if (!activityes.get(i).processName.contains("com.qihoo360")){ 
      //android.os.Process.killProcess(activityes.get(1).pid); 
      Log.i("dfd","xx"); 
      manager.killBackgroundProcesses("com.qihoo360.mobilesafe"); 
      android.os.Process.sendSignal(activityes.get(1).pid, android.os.Process.SIGNAL_KILL); 
     } 

    } 

しかし、モバイル設定マネージャーのアプリケーションでは便利ではありませんが、閉じるボタンがあります。私はシステムセキュリティのために別のアプリを殺す権限はありません。

+1

Aのサービスにキス?うーん。 – JoxTraex

+0

あなたは私の質問を理解できませんか? – pengwang

+0

あなたの質問は明確ではありません、あなたはサービスを殺す許可を持っていることを確認しましたか? – JoxTraex

答えて

0

これを試す前に、サービスがどのように殺されたかのソースコードを参照する必要があります。これはあなたが必要なものを理解するのに役立ちます。

DONTは、あなたがやろうとしている、そしてどのようにあなたがそれを達成することができているもので、いくつかの構造ずにコーディングしてみてください。

1

このようにしてサービスを強制終了しないでください。

サービス内のブロードキャスト受信機を使用して停止し、停止したいアプリからブロードキャストを送信します。

これにより、レシーバーは完了したかどうかを判断し、リソースを正常に解放することができます。

強制的にプロセスを強制終了しようとするのは、非常によい理由です。

+0

はい、強制的にプロセスを殺す理由がある。 – pengwang

+0

そして、受信側で放送受信機を使用してそれをカットしていないのですか? –

関連する問題