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

后端 未结 30 1321
独厮守ぢ
独厮守ぢ 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:21

    I was using this with Google Analytics EasyTracker, and it worked. It could be extended to do what you seek using a simple integer.

    public class MainApplication extends Application {
    
        int isAppBackgrounded = 0;
    
        @Override
        public void onCreate() {
            super.onCreate();
            appBackgroundedDetector();
        }
    
        private void appBackgroundedDetector() {
            registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
                @Override
                public void onActivityCreated(Activity activity, Bundle bundle) {
    
                }
    
                @Override
                public void onActivityStarted(Activity activity) {
                    EasyTracker.getInstance(MainApplication.this).activityStart(activity);
                }
    
                @Override
                public void onActivityResumed(Activity activity) {
                    isAppBackgrounded++;
                    if (isAppBackgrounded > 0) {
                        // Do something here
                    }
                }
    
                @Override
                public void onActivityPaused(Activity activity) {
                    isAppBackgrounded--;
                }
    
                @Override
                public void onActivityStopped(Activity activity) {
                    EasyTracker.getInstance(MainApplication.this).activityStop(activity);
                }
    
                @Override
                public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    
                }
    
                @Override
                public void onActivityDestroyed(Activity activity) {
    
                }
            });
        }
    }
    

提交回复
热议问题