舒服的判斷當前應用是否處於前臺

過兒丶發表於2017-12-13

這個需求很多時候都會用到,網上也有很多的解決方法

比如這樣 5.0以上


這個思路是把手機上現在所有的程式列出來,在從這個list中遍歷,看當前前臺程式是不是自己這個程式
這是一種辦法,但其實通過對activity生命週期的管理都可以解決這個問題。
我們可以知道一個app,在同一時間只可能有最多1個activity在前臺,我們就可以定義一個全域性的變數count
在onstart()中加1,在onStop()中減1.(當count等於0時程式就在後臺)為什麼是onstart和onstop
onstart表示activity已經建立,正在啟動,即將互動。
onstop表明當前activity被停止了,比如被全屏遮住,或者home。或者返回都會呼叫。
這樣的辦法可以解決,但還是有點麻煩,因為有太多activity了。不可能一一註冊。
那就想到系統會不會提供了這樣的方法。
查詢之後真的有這樣的方法。這個方法是屬於Application的registerActivityLifecycleCallbacks


需要判斷是否處於前臺時,只需要判斷當前count是否為0,為0即是在後臺。


相關文章