Android監測程式壓入後台及從後台返回

2021-07-09 03:16:18 字數 751 閱讀 8540

在api14中,android提供了乙個新的狀態監聽的介面 componentcallbacks2。在當中的ontrimmemory方法中,提供了乙個狀態引數 trim_memory_ui_hidden。應該算是乙個「正式」的進入後台標誌了,之所以打引號,是因為這個狀態本意上並不是為了監聽進入後台而設計的,它只是為了讓開發人員能夠在程式進入後台的時候去釋放一些記憶體。但是,這個確實能夠準確的監控。

那有沒有別的辦法可以不依靠api14也能做呢?答案是肯定的。

首先,程式壓入後台,activity肯定是要走pause、stop的,返回的時候會走resume和start,但是正常activity的切換也是要走這幾個方法的,怎麼區分呢?

根據activity的生命週期可以知道,activity a啟動activity b是先走b的onstart,再走a的stop,這樣我們可以根據這個特點,建乙個baseactivity(正常應該每個人應用都會有吧),在裡面建立乙個計數器v,在onstart和onstop裡分別對v+1和-1;這樣可以保證v在切換完成後的增量是0,最後的值應該是1(應用啟動時的mainactivity)。這樣再程式壓入後台的時候會在stop裡對計數器-1,這樣再返回的時候start裡得到的值就是0,這樣就可以判斷是從後台返回了。大致**如下:

private static int v;

protected void onstart()

v++;

}protected void onstop()

}

Android中的後台程式優化

1 後台執行需求 推送訊息 廣告 資料同步 檔案傳輸 使用者活動跟蹤 定時任務 鬧鐘 內容提供者 2 實現自動後台執行 stikcy service override public intonstartcommand intent intent,int flags,int startid 靜態註冊b...

Android程式不在後台列表中顯示

使apk不在後台列表中顯示,其實實現起來非常簡單,只需要在清單檔案中的某乙個activity中新增兩行 即可。android excludefromrecents true android launchmode singleinstance android excludefromrecents tr...

ios開發 程式壓後台後,悄悄的抓取資料

歌飄渺 之後,我們依然能看到icon上顯示未讀數量。但是ios系統是偽多工作業系統。的音訊,保證程式存活。然後蘋果很快發現了這種方法,並禁止了。我們用這種方法提交審核之後,一般都會被蘋果駁回。當然,蘋果 依然很貼心的給我提供了相應的解決辦法。使用swift演示。oc的方法與swift一致 第一步,如...