launch mode 应用场景
標準模式?一調用startActivity()方法就會產生一個新的實例。
SingleTop:使用場景:瀏覽器的書簽;通訊消息聊天界面。
如果已經有一個實例位于activity棧頂,就不產生新的實例,而只是調用activity中的newInstance()方法,如果不位于棧頂,會產生一個新的實例。
SingleTask:使用場景:某個Activity當做主界面的時候。
會在一個新的task中產生這個實例,以后每次調用都會使用這個,不會去產生新的實例了。
SingleInstance:使用場景:比如瀏覽器BrowserActivity很耗內存,很多app都會要調用它,這樣就可以把該Activity設置成單例模式。比如:鬧鐘鬧鈴。
這個和singleTask基本一樣,只有一個區別:在這個模式下的activity實例所處的task中,只能有這個activity實例,不能有其他實例。
activity的四種狀態:Running狀態,Paused狀態,Stopped狀態,Killed(被殺死的,斷開的)狀態。
Running狀態:一個新的Activity啟動入棧后,它在屏幕最前端處于棧的最頂端,此時它處于可見并可和用戶交互的激活狀態。(onCreaet,onStart,onResume)
Paused狀態:當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態。此時它依然與窗口管理器保持連接,系統繼續維護其內部狀態,它仍然可見,但它已經失去了焦點故不可與用戶交互。
Stopped狀態:當Activity不可見時,Activity處于Stopped狀態。當Activity處于此狀態時,一定要保存當前數據和當前的UI狀態,否則一旦Activity退出或關閉時,當前的數據和UI狀態就丟失了。可以重寫onSaveInstanceState()方法,通過他的bundle對象,保持數據,然后在下次啟動中的創建方法中拿到數據。代碼:savedInstanceState.getString("temp");
Killed狀態:Activity被殺掉以后或者被啟動以前處于Killed狀態。這時Activity已從Activity堆棧中移除,需要重新啟動才可以顯示和使用。
4種狀態中,Running狀態和Paused狀態是可見的,Stopped狀態和Killed狀態是不可見的。
onStart 和onResume 的區別:onStart是activity界面被顯示出來的時候執行的;onStart通常就是onStop(也就是用戶按下了home鍵,activity變為后臺后,activity不可見)之后用戶再切換回這個activity就會調用onRestart()而后調用onStart()。
onResume是當該activity與用戶能進行交互時被執行;onResume是onPause(通常是當前的acitivty被暫停了,比如被另一個透明或者Dialog樣式的Activity覆蓋了)之后dialog取消,activity回到焦點狀態,調用onResume()。
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的launch mode 应用场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7怎么用u盘还原 使用U盘还原Wi
- 下一篇: 电脑usb卸载鼠标不能用了怎么办啊 电脑