Created
September 19, 2017 10:42
-
-
Save linakis/0c65313bbeb2f546a9f4030b9e891d47 to your computer and use it in GitHub Desktop.
Android Application class for adding iOS didBecomeActive callback method
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.app.Activity; | |
import android.app.Application; | |
import android.os.Bundle; | |
import java.util.Date; | |
/** | |
* Simple Application providing didBecomeActive callback method. | |
*/ | |
public abstract class StateAwareApplication extends Application implements Application.ActivityLifecycleCallbacks { | |
private static Date lastActiveAt = new Date(); | |
private static boolean activityVisible; | |
@Override | |
public void onCreate() { | |
super.onCreate(); | |
lastActiveAt.setTime(0); | |
registerActivityLifecycleCallbacks(this); | |
} | |
/** | |
* Caution: this will be called sometime after the (first) activity's onResume | |
*/ | |
public abstract void didBecomeActive(); | |
@Override | |
public void onActivityCreated(Activity activity, Bundle savedInstanceState) { } | |
@Override | |
public void onActivityStarted(Activity activity) { } | |
@Override | |
public void onActivityResumed(Activity activity) { | |
if (!activityVisible && (new Date().getTime() - lastActiveAt.getTime() > 4000)) { | |
didBecomeActive(); | |
} | |
activityVisible = true; | |
} | |
@Override | |
public void onActivityPaused(Activity activity) { | |
lastActiveAt = new Date(); | |
activityVisible = false; | |
} | |
@Override | |
public void onActivityStopped(Activity activity) { | |
} | |
@Override | |
public void onActivitySaveInstanceState(Activity activity, Bundle outState) { | |
} | |
@Override | |
public void onActivityDestroyed(Activity activity) { | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment