Как я могу определить, находится ли приложение на вершине стека и какая активность отображается? - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть приложение с несколькими активностями, скажем, A, B, C, D, E, F. .. активность и т. Д.

Как определить, находится ли приложение поверхстек и какая активность отображается?

1 Ответ

0 голосов
/ 20 сентября 2011

, который дает вам список запущенных процессов, самый последний из которых первый - поэтому, если первое приложение ваше, оно находится на вершине стека. Вероятно, не лучшее решение, но единственное, которое я мог придумать на данный момент

ActivityManager am = (ActivityManager)
getSystemService(Service.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processes;
processes = am.getRunningAppProcesses();
int i = 1;
for(ActivityManager.RunningAppProcessInfo info: processes) {
    System.out.println(i++ + ": " + info.processName);
} 

РЕДАКТИРОВАТЬ: Так что для ваших нужд, которые на самом деле лучше подходят, так как вам просто нужен первый

ActivityManager am = (ActivityManager)
getSystemService(Service.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processes;
processes = am.getRunningAppProcesses();
ActivityManager.RunningAppProcessInfo y = processes.get(0);
System.out.println("On top: " + y.processName);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...