Obtener la actividad visible actual al usuario

Quiero poner en marcha la actividad de primer plano. Y puedo conseguir esta información usando el encargado de actividad usando código siguiente.

activityManager = (ActivityManager) FWCommon.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); runningTaskInfoList = activityManager.getRunningTasks(1); componentName = runningTaskInfoList.get(0).topActivity; 

Supongamos que tengo dos actividades A y B y llamo a este código anterior de onResume () de ambas actividades A y B.

El siguiente es el problema

  1. Cuando la actividad A comienza por encima del código me da topActivity = A
  2. Entonces me muevo de la actividad A a B y encima del código me da topActivity = B
  3. Luego presiono Back para volver de la actividad B a A y encima del código de nuevo me da topActivity = B en lugar de A.

Thx Dalvin

Intente usar getRunningAppProcesses () para obtener una lista de RunningAppProcessInfo. A continuación, vaya a través de cada RunningAppProcessInfo y compruebe si está en primer plano haciendo esto:

 List<ActivityManager.RunningAppProcessInfo> processes = manager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo process : processes) { // Take a look at the IMPORTANCE_VISIBLE property as well in the link provided at the bottom if (process.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { // Put code here } } 

Haga clic aquí y aquí para obtener más información.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.