国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 監(jiān)聽應(yīng)用前/后臺切換實例代碼

2019-10-23 18:27:24
字體:
供稿:網(wǎng)友

前言

這周接到一個需求,需要在應(yīng)用從后臺切換到前臺時,展示我們的廣告。展示頁面其實可以復(fù)用以前的開屏廣告頁,唯一的問題就是如何監(jiān)聽應(yīng)用從后臺切到了前臺。

正文

在眾多方法中,我采用了以下這種方式。廢話不多說,咱們直接看代碼:

//自定義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方法為開發(fā)者提供了一個合適的時機,用來釋放掉一些不用的資源,從而讓我們的應(yīng)用在后臺存活更長時間。其中l(wèi)evel參數(shù)就代表我們的應(yīng)用當前在內(nèi)存中的狀態(tài),TRIM_MEMORY_UI_HIDDEN代表應(yīng)用從前臺切到了后臺。這個時候我們便可以標記應(yīng)用切換到了后臺。

接下來需要監(jiān)聽應(yīng)用在什么時候回到了前臺:

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來監(jiān)聽所有Activity的生命周期回調(diào),并在onActivityResumed方法中進行判斷:調(diào)用了Activity的onResume方法,并且已經(jīng)標記為后臺狀態(tài),那么就可以判斷APP回到了前臺。

以下是log輸出:

android,監(jiān)聽應(yīng)用切換,監(jiān)聽應(yīng)用

以上就是我對這個問題的解決方案。

結(jié)尾

這個方案要求API大于等于14,因為registerActivityLifecycleCallbacks方法要求API在14以上。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 彰化市| 赤峰市| 罗田县| 九龙坡区| 灯塔市| 井研县| 新沂市| 凤城市| 吉水县| 峨山| 克东县| 宁都县| 伊金霍洛旗| 赤城县| 长沙县| 新乡县| 达孜县| 垫江县| 漾濞| 德阳市| 修水县| 阿尔山市| 裕民县| 洪湖市| 辽中县| 榕江县| 怀来县| 河曲县| 明水县| 龙海市| 望奎县| 鄂伦春自治旗| 新昌县| 乌审旗| 宝兴县| 雷州市| 酉阳| 乌拉特中旗| 营口市| 万全县| 伊宁县|