開發時經常會遇到這種情況:n多個activity,1個service,不管哪個activity在當前螢幕,程式都想監聽到自己切換到後台的事件。
這裡切換到後台包括使用者點選home鍵,其他應用強行啟動,比如來**。
想了幾個方法,優缺點如下:
想法一:
使用乙個布林值isbackground來判斷,當activity呼叫stop時,isbackground = true,當activity呼叫start時,isbackground = false。
本以為這樣就可以分辨出使用者是點選home鍵退出該activity,還是從這個activity跳到另乙個activity了,但是實際測試發現,當從act_1跳到act_2時,是先呼叫act_2裡的生命週期函式,然後才呼叫act_1的生命週期函式,悲劇了,這個方法行不通。
想法二:
最後終於想到了比較好的解決方法,使用全域性計數器,當activity呼叫start時,計數器+1,當activity呼叫stop時,計數器-1,這樣,如果計數器為0,就說明程式在後台執行,可以寫乙個baseactivity來統一管理計數器,其他activity繼承它就行了。
如何退出多個Activity
對於單一activity的應用來說,退出很簡單,直接finish 即可。當然,也可以用killprocess 和system.exit 這樣的方法。對於多個activity,1 記錄開啟的activity 每開啟乙個activity,就記錄下來。在需要退出時,關閉每乙個activity即可。2 傳送...
如何退出多個Activity
對於單一activity的應用來說,退出很簡單,直接finish 即可。當然,也可以用killprocess 和system.exit 這樣的方法。對於多個activity,1 記錄開啟的activity 每開啟乙個activity,就記錄下來。在需要退出時,關閉每乙個activity即可。2 傳送...
TabHost存放多個Activity
tabhost是android應用開發中非常常用的元件,他能起到類似web開發中選單導航的效果。基本概念 tabhost tabhost就像乙個容器,裡面可以存放多個tab。tabhost.addtab tabspec 此方法用於將tab新增到tabhost。tabspec 就是tab,這個類沒有對...