大佬教程收集整理的这篇文章主要介绍了Android 监听应用前/后台切换实例代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
前言
这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切到了前台。
正文
在众多方法中,我采用了以下这种方式。废话不多说,咱们直接看代码:
//自定义Application类 public class MyApplication extends Application
在清单文件中声明
<application android:name=".MyApplication" android:allowBACkup="true" android:icon="@mipmap/ic_launcher" android:label="@String/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
在MyApplication里重写onTrimMemory方法:
@Override public void onTrimMemory(int level) { super.onTrimMemory(level); if (level == TRIM_MEMORY_UI_HIDDEN) { isBACkGround = true; Log.i("bo","APP遁入后台"); } }
onTrimMemory方法为开发者提供了一个合适的时机,用来释放掉一些不用的资源,从而让@R_272_9616@在后台存活更长时间。其中level参数就代表@R_272_9616@当前在内存中的状态,TRIM_MEMORY_UI_HIDDEN代表应用从前台切到了后台。这个时候我们便可以标记应用切换到了后台。
接下来需要监听应用在什么时候回到了前台:
registerActivityLifecycleCallBACks(new ActivityLifecycleCallBACks() { @Override public void onActivityCreated(Activity activity,Bundle savedInstanceStatE) { } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { if (isBACkGround) { isBACkGround = false; Log.i("bo","APP回到了前台"); } } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity,Bundle outStatE) { } @Override public void onActivityDestroyed(Activity activity) { } });
我们使用registerActivityLifecycleCallBACks来监听所有Activity的生命周期回调,并在onActivityResumed方法中进行判断:调用了Activity的onResume方法,并且已经标记为后台状态,那么就可以判断APP回到了前台。
以下是log输出:
以上就是我对这个问题的解决方案。
结尾
这个方案要求API大于等于14,因为registerActivityLifecycleCallBACks方法要求API在14以上。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
以上是大佬教程为你收集整理的Android 监听应用前/后台切换实例代码全部内容,希望文章能够帮你解决Android 监听应用前/后台切换实例代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。