導航:首頁 > 操作系統 > android崩潰activity

android崩潰activity

發布時間:2025-01-08 00:09:34

android:當Activity和Service 都被銷毀後,如何控制其中生成的線程

線程沒有被銷毀的,當Activity或者Service中還有活動線程的時候,垃圾回收器是不會回收銷毀Activity和Service對象的。舉個例子,你可以在Activity中啟動一個線程,在onDestroy中用System.out.print或者log輸出一個信息,然後通過按鈕調用finish方法,會發現點擊以後Activity會「關閉」,但只是不可見了,但是沒有調用onDestroy方法。除非你在onDestroy中關閉了線程才會關閉。
線程管理一般是通過一個布爾類型值保存其狀態,通過判斷它是否為空,一起來處理。這樣最簡單。
就是在onDestroy中處理的,你說沒有調用,是因為還有子線程在運行。在onDestroy中判斷線程狀態,正常關閉線程以後就行了。

Ⅱ android cleartop 被銷毀的activity會調用哪個方法

第一種是正常的銷毀,比如用戶按下Back按鈕或者是activity自己調用了finish()方法;


另一種是由於activity處於stopped狀態,並且它長期未被使用,或者前台的activity需要更多的資源,這些情況下系統就會關閉後台的進程,以恢復一些內存。


需要注意的是這其中有一種情況就是屏幕旋轉的問題,當用戶旋轉手機屏幕,每一次都會導致activity的銷毀和重新建立。


在第二種情況下,盡管實際的activity實例已經被銷毀,但是系統仍然記得它的存在,當用戶返回到它的時候,系統會創建出一個新的實例來代替它,這里需要利用舊實例被銷毀時候存下來的數據。這些數據被稱為「instancestate」,是一個存在Bundle對象中的鍵值對集合。


預設狀態下,系統會把每一個View對象保存起來(比如EditText對象中的文本,ListView中的滾動條位置等),即如果activity實例被銷毀和重建,那麼不需要你編碼,layout狀態會恢復到前次狀態。


但是如果你的activity需要恢復更多的信息,比如成員變數信息,則需要自己動手寫了。


onSaveInstanceState()

如果要存儲額外的數據,必須覆寫回調函數onSaveInstanceState().


系統會在用戶離開activity的時候調用這個函數,並且傳遞給它一個Bundleobject,如果系統稍後需要重建這個activity實例,它會傳遞同一個Bundleobject到onRestoreInstanceState()和onCreate()方法中去。


當系統停止activity時,它會調用onSaveInstanceState()(過程1),如果activity被銷毀了,但是需要創建同樣的實例,系統會把過程1中的狀態數據傳給onCreate()和onRestoreInstanceState()(圖中標出的2和3)。


閱讀全文

與android崩潰activity相關的資料

熱點內容
單片機的Vpp是 瀏覽:350
iua編譯器下載官方 瀏覽:84
壓縮機高低壓快速平衡 瀏覽:873
phpai 瀏覽:707
怎麼不被命令 瀏覽:86
大話緣定三生伺服器什麼便宜 瀏覽:967
idea編譯內部類 瀏覽:466
pdf2word在線轉換 瀏覽:588
tim儲存在哪個文件夾 瀏覽:621
華碩電腦u盤加密最簡單方法 瀏覽:853
編程過路馬游戲 瀏覽:608
python多重線性回歸 瀏覽:516
冰箱壓縮機工作圖 瀏覽:843
OTC機器人編程師 瀏覽:948
簽名的apk能防止反編譯嗎 瀏覽:311
我的世界伺服器如何版本 瀏覽:285
集合競價買入額指標源碼 瀏覽:114
雲伺服器安裝華為歐拉系統 瀏覽:959
c面向對象編程教程 瀏覽:527
php的重定向跳轉頁面跳轉 瀏覽:411