Как найти текущую активность переднего плана в Android - PullRequest
8 голосов
/ 15 ноября 2011

Можно ли найти текущую активность переднего плана в Android. Я не использую ActivityGroup.

Ответы [ 2 ]

8 голосов
/ 15 ноября 2011

Полагаю, вам нужно взглянуть на ActivityManager class .Я кратко посмотрел на документы, и это то, что я придумал.

Есть функция:

public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum)

Из документов Android :

Возвращает список задач, которые в данный момент выполняются, причемпоследние были первыми, а старые - по порядку.Обратите внимание, что «выполнение» не означает, что какой-либо код задачи в данный момент загружен или активен - задача могла быть заморожена системой, чтобы ее можно было перезапустить в своем предыдущем состоянии при следующем выводе на передний план.

Я бы подумал, что если вы передадите maxNum=1, он должен дать вам самую последнюю задачу, которая была запущена, т.е.главная задача.Каждый ActivityManager.RunningTaskInfo имеет свойство, которое называется topActivity.

public ComponentName topActivity 

Из Документов Android : Компонент действия наверху стека истории задачи.Это то, что пользователь сейчас делает.

7 голосов
/ 15 ноября 2011

попробуйте ниже код: вам нужно дать соответствующее разрешение

private String getCurrentTopActivity() {

        ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
        ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
        return ar.topActivity.getClassName().toString();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...