Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JackCho/0eb50ea987cd23d2f612 to your computer and use it in GitHub Desktop.
Save JackCho/0eb50ea987cd23d2f612 to your computer and use it in GitHub Desktop.
/**
* This class allows you to listen to when the user is entering the background (i.e. after a home button press,
* or opening recent apps etc) and when the user resumes the application from the background.
*
* @author John McDonnell
*/
public class BetterActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
private int mForegroundActivities;
private boolean mHasSeenFirstActivity;
private boolean mChangingConfiguration;
@Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override public void onActivityStarted(Activity activity) {
mForegroundActivities++;
if (mHasSeenFirstActivity && mForegroundActivities == 1 && !mChangingConfiguration) {
applicationDidEnterForeground(activity);
}
mHasSeenFirstActivity = true;
mChangingConfiguration = false;
}
@Override public void onActivityResumed(Activity activity) {
}
@Override public void onActivityPaused(Activity activity) {
}
@Override public void onActivityStopped(Activity activity) {
mForegroundActivities--;
if (mForegroundActivities == 0) {
applicationDidEnterBackground(activity);
}
mChangingConfiguration = activity.isChangingConfigurations();
}
@Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override public void onActivityDestroyed(Activity activity) {
}
/**
* One day we'll be as cool as iOS
*/
protected void applicationDidEnterForeground(Activity topActivity) {
}
protected void applicationDidEnterBackground(Activity lastActivity) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment