Voici une bonne façon de le faire en utilisant le gestionnaire d'activité.
Vous obtiendrez le runningTasks de l'activité de gestionnaire. Il retournera toujours la tâche active en premier. À partir de là, vous pouvez obtenir le topActivity.
Exemple ici
Il y a un moyen facile d'obtenir une liste de tâches en cours d'exécution à partir de la ActivityManager service.
Vous pouvez demander un nombre maximum de tâches en cours d'exécution sur le téléphone, et par défaut, la tâche active est retourné en premier.
Une fois que vous avez que vous pouvez obtenir un Nomcomposant objet en demandant la topActivity de votre liste.
Voici un exemple.
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();
Vous aurez besoin de l'autorisation suivante sur votre manifeste:
<uses-permission android:name="android.permission.GET_TASKS"/>