Android 前后台切换通知实现
2023-04-12
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接收类。
小黑板:
*App混淆不清的可以访问我这篇文档:android一站式解决混淆
本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。
免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com



