Можно ли определить, когда какие-либо действия моего приложения отображаются и когда все действия закрываются? - PullRequest
0 голосов
/ 02 апреля 2012

I.e Я хотел бы знать, когда пользователь взаимодействует с моим приложением, а когда нет.

Я пытался сделать это с помощью ActivityManager.getRecentTasks (). Я проверил активность root в главной задаче, чтобы определить, взаимодействует ли пользователь с моим приложением или нет.

Я вынужден проверять его в отдельном потоке каждую секунду или две.

Это плохо для меня. Есть еще один способ определить, когда какая-либо активность моего приложения открыта или закрыта?

1 Ответ

0 голосов
/ 02 апреля 2012

Посмотрите на жизненный цикл Действия.Существуют методы обратного вызова (onStart, onResume, onPause, onDestroy, ...), которые вызываются системой всякий раз, когда ваша деятельность создается, становится активной или неактивной и т. Д. Вы можете создать свой собственный класс приложения (просто наследовать от android.app.Application) и выполнять отслеживание.там.Приложение будет работать до тех пор, пока ваше приложение работает.Например, вы можете поставить флаг или счетчик и установить его из обратных вызовов действий.Простой пример для этого может быть:

public void onResume() {
    super.onResume();
    ((MyApplication)getApplication()).active = true;
}

public void onDestroy() {
    super.onDestroy();
    ((MyApplication)getApplication()).destroyed += 1;
}
...