Android 监听应用前后台切换实例代码

Android 监听应用前后台切换实例代码,第1张

概述前言这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切到了前台。

前言

这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切到了前台。

正文

在众多方法中,我采用了以下这种方式。废话不多说,咱们直接看代码

//自定义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 监听应用前/后台切换实例代码全部内容,希望文章能够帮你解决Android 监听应用前/后台切换实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1146113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存