前言

这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切到了前台。
正文
在众多方法中,我采用了以下这种方式。废话不多说,咱们直接看代码:
//自定义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方法为开发者提供了一个合适的时机,用来释放掉一些不用的资源,从而让我们的应用在后台存活更长时间。其中level参数就代表我们的应用当前在内存中的状态,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以上。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关文章:
网站制作新手教程,新手建设一个网站需要注意些什么?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
宝塔建站后网页无法访问如何解决?
如何在万网主机上快速搭建网站?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何挑选优质建站一级代理提升网站排名?
如何用美橙互联一键搭建多站合一网站?
如何快速上传建站程序避免常见错误?
如何通过可视化优化提升建站效果?
如何选择可靠的免备案建站服务器?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
网站制作网站,深圳做网站哪家比较好?
定制建站流程解析:需求评估与SEO优化功能开发指南
网站制作说明怎么写,简述网页设计的流程并说明原因?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
如何在IIS中新建站点并解决端口绑定冲突?
南京网站制作费用,南京远驱官方网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
兔展官网 在线制作,怎样制作微信请帖?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
英语简历制作免费网站推荐,如何将简历翻译成英文?
建站之星如何快速生成多端适配网站?
如何续费美橙建站之星域名及服务?
如何设置并定期更换建站之星安全管理员密码?
如何用IIS7快速搭建并优化网站站点?
学校建站服务器如何选型才能满足性能需求?
定制建站流程步骤详解:一站式方案设计与开发指南
如何高效完成自助建站业务培训?
如何用狗爹虚拟主机快速搭建网站?
北京制作网站的公司,北京铁路集团官方网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
建站之星免费版是否永久可用?
如何将凡科建站内容保存为本地文件?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何通过.red域名打造高辨识度品牌网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。