从Android 1.4 开始,Application 类中增加了如下方法:
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
Log.i(TAG, "onActivityCreated()");
}
@Override
public void onActivityStarted(Activity activity) {
Log.i(TAG, "onActivityStarted()");
}
@Override
public void onActivityResumed(Activity activity) {
Log.i(TAG, "onActivityResumed()");
}
@Override
public void onActivityPaused(Activity activity) {
Log.i(TAG, "onActivityPaused()");
}
@Override
public void onActivityStopped(Activity activity) {
Log.i(TAG, "onActivityStopped()");
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
Log.i(TAG, "onActivitySaveInstanceState()");
}
@Override
public void onActivityDestroyed(Activity activity) {
Log.i(TAG, "onActivityDestroyed()");
}
});
使用这个类,我们可以很方便的监听到 Activity 的状态,从而可以判断 APP 是否在前台或者后台等。
这个类的用法也比较简单,下面推荐几篇不错的文章,主要是做了一些简单的封装,方便调用,我觉得好的东西是需要分享出来的。
另外,推荐注册手机电源按键的监听一起使用,这样可以完美监听,手机的状态:
IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
isBackground = true;
notifyBackground();
}
}, screenStateFilter);
推荐文章: https://www.jianshu.com/p/e7f64e6bc2cc
https://blog.csdn.net/u010072711/article/details/77090313
http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html
您可以扫描屏幕右侧的二维码,来关注我的微信公众号,来学习更多的干货文章!
另外,我还建了一个免费的知识星球,感兴趣的微信扫码即可加入!