Skip to content

Instantly share code, notes, and snippets.

@jbruchanov
Created October 27, 2015 10:10
Show Gist options
  • Save jbruchanov/6c86b788bc1d36ce4048 to your computer and use it in GitHub Desktop.
Save jbruchanov/6c86b788bc1d36ce4048 to your computer and use it in GitHub Desktop.
Android Activity tracker
/*
http://developer.android.com/reference/android/app/Application.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)
Helper for counting running activities to send request if we are going from background
*/
private ActivityLifecycleCallbacks mActivityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
private int mActivityCounter;
@Override public void onActivityResumed(Activity activity) { }
@Override public void onActivityPaused(Activity activity) { }
@Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { }
@Override public void onActivityDestroyed(Activity activity) { }
@Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { }
@Override
public void onActivityStopped(Activity activity) {
mActivityCounter--;
if (mActivityCounter == 0) {
if (activity instanceof KnowsScreenName) {
String currentPage = ((KnowsScreenName) activity).getScreenPageName(SampleItApp.this);
if (currentPage != null) {
AnalyticsHelper.logLeavingPage(currentPage);
}
}
}
}
@Override public void onActivityStarted(Activity activity) {
if (mActivityCounter == 0) {
onLoadDataAsync(true);
}
mActivityCounter++;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment