原文:
採用了原文的方案二:
很多開發者就單純的認為只要將上圖爛熟於心,activity生命週期就瞭如指掌了,其實不然,很多開發者並不能真正的理解activity生命週期,然後利用生命週期解決一些問題。
我們先分析第乙個問題,activity為什麼要把生命週期細化成6段(拋開onrestart()),其實這6段可以分成3組,它們是一一對應的關係:
oncreat()對應ondestory();
onstart()對應onstop();
onresume()對應onpause();
它們就像蹺蹺板的兩端,此消彼長。
第三個問題
intent
intent;
intent=new intent(aactivity.this, bactivity.class);
startactivity(intent);
這一過程中aactivity和bactivity的生命週期是怎樣的?
a.onpause() -> b.onstart() -> b.onresume() -> a.onstop()
是不是與你所認為的那樣有出入。
清楚以上問題後,事情就簡單多了,正常的activity跳轉,都是前乙個先onpause(),後乙個onstart()。但是切到後台這件事前乙個onstop()後就結束了,沒有另乙個onstart()了。那我們只需要維護乙個常量,在onstart()的時候,count++,onstop()的時候count--,然後根據這個count的值就能判斷了。
@override
protected
void
onstart
()@override
protected
void
onstop
() }
判斷當前應用是否在前台
在我們做一些應用的時候 往往會有一些需求,需要判斷當前應用在前台還是在後台,讓後一些操作,比如重新登陸,提示彈框什麼的 這樣就需要我們來做一些判斷了 下面是我寫的一些方法 public boolean isrunningforground context context return false p...
舒服的判斷當前應用是否處於前台
這個需求很多時候都會用到,網上也有很多的解決方法 比如這樣 5.0以上 這個思路是把手機上現在所有的程序列出來,在從這個list中遍歷,看當前前台程式是不是自己這個程式 這是一種辦法,但其實通過對activity生命週期的管理都可以解決這個問題。在onstart 中加1,在onstop 中減1.當c...
判斷應用是否賦予某個許可權
判斷應用是否賦予某個許可權 param permisstion public static boolean ischeckpermisstion string permisstion else 使用例 ischeckpermisstion permission.call phone 判斷是否有打 的...