デバイスで実行されているアプリケーションのすべてのアクティビティのリストを取得する方法。
例:PDFの生成と電子メールのアクティビティが含まれています。
次のようなコードでアクティビティを確認できます。
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::"
+ taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName();
ただし、これにより、最上位のアクティビティである実行中のアクティビティに関する情報が提供されます。
私の考えは、ホワイトリスト実行中のアクティビティを実行して、サードパーティのアプリケーションがデバイス上で実行できるようにすることです。したがって、基本的に、アプリケーションで実行中のすべてのアクティビティが必要です。
この投稿 に記載されているAppLifecycleHandlerは、何が起こっているのかを知るための優れたソリューションであることがわかりました。私は主に、ユーザーがアプリの使用を終了したときにカウントを維持してクリーンアップするために使用しますが、実行中のすべてのアクティビティを格納する配列を使用して実装できるため、いつでも呼び出して実行中のアクティビティを確認できます。