欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 監(jiān)聽(tīng)?wèi)?yīng)用前/后臺(tái)切換實(shí)例代碼

 更新時(shí)間:2017年06月02日 09:01:25   作者:實(shí)例波  
本篇文章主要介紹了Android 監(jiān)聽(tīng)?wèi)?yīng)用前/后臺(tái)切換實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前言

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

正文

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

//自定義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里重寫(xiě)onTrimMemory方法:

  @Override
  public void onTrimMemory(int level) {
    super.onTrimMemory(level);
    if (level == TRIM_MEMORY_UI_HIDDEN) {
      isBackGround = true;
      Log.i("bo", "APP遁入后臺(tái)");
    }
  }

onTrimMemory方法為開(kāi)發(fā)者提供了一個(gè)合適的時(shí)機(jī),用來(lái)釋放掉一些不用的資源,從而讓我們的應(yīng)用在后臺(tái)存活更長(zhǎng)時(shí)間。其中l(wèi)evel參數(shù)就代表我們的應(yīng)用當(dāng)前在內(nèi)存中的狀態(tài),TRIM_MEMORY_UI_HIDDEN代表應(yīng)用從前臺(tái)切到了后臺(tái)。這個(gè)時(shí)候我們便可以標(biāo)記應(yīng)用切換到了后臺(tái)。

接下來(lái)需要監(jiān)聽(tīng)?wèi)?yīng)用在什么時(shí)候回到了前臺(tái):

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回到了前臺(tái)");
        }
      }

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

以下是log輸出:


以上就是我對(duì)這個(gè)問(wèn)題的解決方案。

結(jié)尾

這個(gè)方案要求API大于等于14,因?yàn)閞egisterActivityLifecycleCallbacks方法要求API在14以上。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論