/**
* 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) {
}
}