Android 監(jiān)聽應用前/后臺切換實例代碼
前言
這周接到一個需求,需要在應用從后臺切換到前臺時,展示我們的廣告。展示頁面其實可以復用以前的開屏廣告頁,唯一的問題就是如何監(jiān)聽應用從后臺切到了前臺。
正文
在眾多方法中,我采用了以下這種方式。廢話不多說,咱們直接看代碼:
//自定義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ā)者提供了一個合適的時機,用來釋放掉一些不用的資源,從而讓我們的應用在后臺存活更長時間。其中l(wèi)evel參數(shù)就代表我們的應用當前在內(nèi)存中的狀態(tài),TRIM_MEMORY_UI_HIDDEN代表應用從前臺切到了后臺。這個時候我們便可以標記應用切換到了后臺。
接下來需要監(jiān)聽應用在什么時候回到了前臺:
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輸出:

以上就是我對這個問題的解決方案。
結(jié)尾
這個方案要求API大于等于14,因為registerActivityLifecycleCallbacks方法要求API在14以上。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android判斷當前應用程序處于前臺還是后臺的兩種方法
- android編程判斷應用是否具有某個權(quán)限的方法
- android判斷手機是否安裝地圖應用實現(xiàn)跳轉(zhuǎn)到該地圖應用
- Android編程判斷應用程序是否已安裝的方法
- Android應用程序轉(zhuǎn)到后臺并回到前臺判斷方法
- Android開發(fā)判斷一個app應用是否在運行的方法詳解
- Android開發(fā)中實現(xiàn)應用的前后臺切換效果
- Android應用程序保持后臺喚醒(使用WakeLock實現(xiàn))
- Android中應用前后臺切換監(jiān)聽的實現(xiàn)詳解
- Android編程判斷當前應用是否在后臺運行的方法示例
相關文章
詳解RxJava2 Retrofit2 網(wǎng)絡框架簡潔輕便封裝
本篇文章主要介紹了詳解RxJava2 Retrofit2 網(wǎng)絡框架簡潔輕便封裝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Android TreeView實現(xiàn)帶復選框樹形組織結(jié)構(gòu)
這篇文章主要為大家詳細介紹了Android TreeView實現(xiàn)帶復選框樹形組織結(jié)構(gòu),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
Kotlin實現(xiàn)網(wǎng)絡圖片下載和保存功能
根據(jù)Android多線程和網(wǎng)絡編程的知識講解和案例使用,使用Handler消息機制實現(xiàn)網(wǎng)絡圖片下載,并且保存到模擬器中,強化對Android多線程編程、網(wǎng)絡編程和文件讀寫的理解,這篇文章主要介紹了Kotlin實現(xiàn)網(wǎng)絡圖片下載和保存功能,需要的朋友可以參考下2023-02-02
Android WebView或手機瀏覽器打開連接問題解決辦法總結(jié)
這篇文章主要介紹了Android WebView或手機瀏覽器打開連接問題解決辦法總結(jié)的相關資料,需要的朋友可以參考下2017-03-03

