Android 判断App是否进入后台

作者: 旺仔爸 | 来源:发表于2017-07-19 12:06 被阅读255次

    原理
    AndroidSDK14在Application类里增加了ActivityLifecycleCallbacks,我们可以通过这个Callback拿到App所有Activity的生命周期回调。
    知道这些信息,我们就可以用更官方的办法来解决问题,当然还是利用方案二里的Activity生命周期的特性,我们只需要在Application的onCreate()里去注册上述接口,然后由Activity回调回来运行状态即可。

    可能还有人在纠结,我用back键切到后台和用Home键切到后台,一样吗?以上方法适用吗?在Android应用开发中一般认为back键是可以捕获的,而Home键是不能捕获的(除非修改framework),但是上述方法从Activity生命周期着手解决问题,虽然这两种方式的Activity生命周期并不相同,但是二者都会执行onStop();所以并不关心到底是触发了哪个键切入后台的。另外,Application是否被销毁,都不会影响判断的正确性

    上代码

    public class MainApplication extends Application implements Application.ActivityLifecycleCallbacks{
        
    
        @Override
        public void onCreate() {
            super.onCreate();
            registerActivityLifecycleCallbacks(this);
        }
    
    
        @Override
        public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
            
        }
    
        @Override
        public void onActivityStarted(Activity activity) {
    
        }
    
        @Override
        public void onActivityResumed(Activity activity) {
    
        }
    
        @Override
        public void onActivityPaused(Activity activity) {
    
        }
    
        @Override
        public void onActivityStopped(Activity activity) {
            //比如我的应用主页面是ActMain   ActMain进入后台就认定应用进入后台 
            if (activity instanceof ActMain){
               //在这里处理后台的操作
            }
        }
    
        @Override
        public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    
        }
    
        @Override
        public void onActivityDestroyed(Activity activity) {
    
        }
    }
    
    
    

    而且ActivityLifecycleCallbacks 方法的好处是他可以在Application 里管理你整个应用的Activity 的生命周期 爽到不行

    参考文章更多其他方案点这里:https://github.com/wenmingvs/AndroidProcess

    相关文章

      网友评论

      • Kcwind:Application里重写onTrimMemory方法,判断level是不是等于TRIM_MEMORY_UI_HIDDEN就行了
        旺仔爸:@Kcwind 666
        隔壁老李头: @Kcwind 是的
      • zsgnaw:这个方法多进程的时候应该怎么用啊。

      本文标题:Android 判断App是否进入后台

      本文链接:https://www.haomeiwen.com/subject/fhklkxtx.html