1.背景:
我们在做应用开发的时候,经常需要对应用监听判断,当前应用是否处于前台还是后台,包括如果切到后台收到通知做一些功能。以前我们常见的做法通过方法来判断,其实还有其他的简单方法,接下来我们将使用一些常规比较稳当的方法。
onTrimMemory和
registerActivityLifecycleCallbacks
2.详解
2.1public void onTrimMemory(int level)(前台切到后台) 这个方法属于application的方法,我们只要对方法进行覆盖即可,父类已提供,在level标识中,
TRIM_MEMORY_UI_HIDDEN:标识当前UI不可见,也就是我们把app切到后台了。这个时候我们通过eventgBus或者其他的方法通知其他Activity做相应的操作,这个方法提供的是判断切到后台
2.2registerActivityLifecycleCallbacks(后台切回前台)
public void registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback),只注册该方法,接口回调如下
void onActivityCreated(Activity activity, Bundle savedInstanceState); void onActivityStarted(Activity activity); void onActivityResumed(Activity activity); void onActivityPaused(Activity activity); void onActivityStopped(Activity activity); void onActivitySaveInstanceState(Activity activity, Bundle outState); void onActivityDestroyed(Activity activity);
我们只需要在onActivityStarted回调中进行处理从后台切回前台的通知即可
最后,在基类中,接收该通知,注意:如果App混淆了,需要keep一下基本的eventBus接收类。
小黑板: