How to detect when an Android app goes to the background and come back to the foreground

后端 未结 30 1309
独厮守ぢ
独厮守ぢ 2020-11-22 00:56

I am trying to write an app that does something specific when it is brought back to the foreground after some amount of time. Is there a way to detect when an app is sent to

30条回答
  •  隐瞒了意图╮
    2020-11-22 01:12

    In your Application add the callback and check for root activity in a way like this:

    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityStopped(Activity activity) {
            }
    
            @Override
            public void onActivityStarted(Activity activity) {
            }
    
            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
            }
    
            @Override
            public void onActivityResumed(Activity activity) {
            }
    
            @Override
            public void onActivityPaused(Activity activity) {
            }
    
            @Override
            public void onActivityDestroyed(Activity activity) {
            }
    
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                if (activity.isTaskRoot() && !(activity instanceof YourSplashScreenActivity)) {
                    Log.e(YourApp.TAG, "Reload defaults on restoring from background.");
                    loadDefaults();
                }
            }
        });
    }
    

提交回复
热议问题