判断一个App是否在前台运行(方法超级简单)

这个方法超级简单,看了就知道了


首先弄清楚一个问题,当一个Activity启动另外一个Activity的时候,这两个Activity的生命周期是如何变化的?(为了方便,我们假设这两个Activity的名字为“甲”Activity和“乙”Activity)


答案:(甲)onCreate->(甲)onStart()->(甲)onResume()->甲正在运行中,此时甲需要跳转的到乙->(甲)onPause()->(乙)onCreate->(乙)onStart()->(乙)onResume()->乙正在运行中->(甲)onStop()->(甲)onDestory()


我们可以得出这样一个结论,也就是当一个Activity启动另外一个Activity的时候,会先执行onPause方法,然后去创建一个新的Activity,等到那个新的Activity启动完成,完全展示在我们的手机上的时候,系统才会去调用上一个Activity的onStop方法,或者可以这样说,只要我们的应用程序在前台,onStart和onStop这两个方法的执行次数肯定是成对出现的,如果没有成对出现,那肯定不是前台应用,自己好好体会~~~


那么问题来了,我们要怎么计算onStart()方法和onStop()方法的执行次数呢,一个app那么多Activity,需要在每个Activity里面写方法岂不是很愚蠢!!!这个问题好解决,写一个BaseActivity,然后定义一个静态的int,让所有的Activity都继承这个类,在BaseActivity的onStart()方法和onStop()方法体内对静态的int进行操作,onStart()执行int++,在onStop()执行int--,当你要判断该应用程序是否是前台运行的时候,只要判断这个静态的int是否是0就好了,如果是0,说明所有的Activity都到后台了,如果是1,说明该App在前台运行。

你可能感兴趣的:(Android进阶之路)