Android – Как отслеживать приложение. Возобновляет только при выходе и возвращении в приложение?

У меня проблема. Для аналитических целей мне нужно отслеживать, когда APP (а не активность) возобновляется. Проблема, которую я сейчас имею в себе, заключается в том, что если я помещу трекер в событие OnResume активности, он будет запущен каждый раз, когда пользователь будет запускать разные действия.

Как я могу избежать этого? Как я могу отслеживать реальное «Резюме приложения» (когда пользователь действительно выходит из приложения и возвращается), а не резюме активности?

Любые идеи приветствуются. Благодарю.

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

public class mActivity extends Activity{ public static final String TAG = "mActivity"; public static int activities_num = 0; @Override protected void onStop() { super.onStop(); activities_num--; if(activities_num == 0){ Log.e(TAG,"user not longer in the application"); } } @Override protected void onStart() { super.onStart(); activities_num++; } } 

Все остальные действия в моем приложении унаследованы. Когда действие больше не отображается, чем вызывается onStop. Когда activity_num == 0, чем все действия не видны (это означает, что пользователь закрывает приложение или передает его на задний план). Когда пользователь запустит приложение (или перезапустит его из фона), будет вызываться onStart (onStart вызывается, когда активность видна) и activity_num> 0. надеется, что это поможет …

Используйте объект приложения вашего приложения (см. http://developer.android.com/reference/android/app/Application.html ). Если вы создадите собственный класс приложения и настроите его в своем файле AndroidManifest.xml, вы можете сделать что-то вроде этого:

  1. Начать отслеживание в onCreate() объекта Application.
  2. Инструментируйте все свои действия так, чтобы их onPause() и onResume() проверялись с объектом Application и onResume() являются ли они первой выполняемой onResume() или если они продолжают выполняемый ранее экземпляр приложения.
  3. Остановите отслеживание в onDestroy() объекта Application.

В определенной степени большинство пакетов аналитики (Flurry и их аналоги) делают что-то похожее на это. Вам нужно будет сделать небольшую работу с государственными машинами, чтобы заставить это работать правильно, но это не должно быть слишком сложно.

Вместо OnResume () подключитесь к событию OnCreate () вашего основного действия.