全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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方法为开发者提供了一个合适的时机,用来释放掉一些不用的资源,从而让我们的应用在后台存活更长时间。其中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以上。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # 监听应用切换 


相关文章: 网站制作新手教程,新手建设一个网站需要注意些什么?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  高防网站服务器: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小时内与您取得联系。