0

私はリストビュー内のすべてのアプリケーションを登録する簡単なランチャーを持っています。私はちょうどこのランチャーに一つの機能がほしい。リストビューの特定のアイテム(たとえば5番目のアイテム)がクリックされたとき、以前開いていたすべてのアプリケーションを完全に終了し、そこに登録されている5番目のアプリケーションを開きたいとします。私は何を探すべきか分からない。私はデバイスの管理者とデバイスの所有者としてランチャーアプリを持っていると私はそれがDevicePolicyManagerクラスと関係があると思う。私もfinishActivity(int requestcode)を試しましたが、うまくいきませんでした。役立つだろうあなたは次のアプリのアクティビティを開始する前に、以前に開かれたアプリを殺すしたい理由の背後にある以前に開いたすべてのアプリケーションを終了するランチャーを作成する

list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> av, View v, int pos,long id) { 
       Intent i = manager.getLaunchIntentForPackage(apps.get(pos).name.toString()); 
       AppsListActivity.this.startActivity(i); 

      } 
     }); 
+0

あなたのシステム以外のアプリが他のアプリを殺すことはできないと思います。 –

+0

しかし、この非システムアプリ(ランチャー)は、デバイスオーナーアプリとデバイス管理者です。ここから、他のアプリの機能を指示することはできませんか? –

答えて

0

もう少しコンテキスト:以下はonItemClick()リスナーがあります。私が正しく理解していれば、常に1つのアプリしか実行されていないので、常に1つのアプリしか殺さないでしょう。

アプリを完全に終了する必要がない場合は、選択したものともちろんランチャー以外のすべてのパッケージsetPackagesSuspended(API 24以上を実行している場合)を一時停止する方がはるかにエレガントです。一時停止したパッケージはアクティビティを開始できません。その通知は非表示になり、通知には表示されず、トーストやダイアログを表示したり、デバイスを呼び出したりすることはできません。あなたがリソースを心配している場合は、Androidを信頼してリソースを管理し、必要なときにプロセスを終了させることができない理由はありますか?

関連する問題