如何监听程序在后台
有时候,我们为了实现某种需求,需要隔一段时间监听一下程序是否在后台,那么如何做呢?
分析需求
当我们按下手机的HOME键,会使我们的应用程序进入到后台运行。我们的程序组成部分有哪些:activity、fragment、service 等等,看到这些组件,相信你应该已经有了一些想法。比如,我们可以监听activity的活动监听,程序进入后台,会触发onstop ondestroy 等生命周期,下面我们就使用这种方式来实现需求
如何实现
通常,我们在程序刚开始启动的时候都会初始化一些重要的数据,比如数据库,比如服务等等,我们基本都会自己实现Application的子类,在Application中,就有这么一个registerActivityLifecycleCallbacks回调方法,看方法名,你应该就已经明白,这个一个注册了activity生命回调的方法,在我们自己的全局子类中,重载这个方法,就实现了对activity全程生命周期的监听。
registerActivityLifecycleCallbacks1.png
逻辑描述
在上述图片中 你应该注意到在onActivityResumed和onActivityStopped我分别写了mActivityOnResume和mActivityCount两个变量,分别来记录当前acitivty活动的生命个数。其实到这里,你应该就已经明白我们怎么去实现了,是的。我们可以在我们业务逻辑,去对这两个变量进行判断,当mActivityOnResume==0&&mActivityCount==0的时候,也就意味着,我们的程序其实已经进入后台了。
结尾
这个需求实现起来很简单,相信大家肯定会有其他更加聪明的办法,我就在这里抛砖引玉了。
网友评论