導航:首頁 > 操作系統 > 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相關的資料

熱點內容
查找ip地址命令 瀏覽:878
中國注冊會計師協會演算法人嗎 瀏覽:469
什麼叫伺服器內部錯誤4o4 瀏覽:494
單片機原理復習 瀏覽:435
打不開頭條任務伺服器怎麼辦 瀏覽:645
戰雷錄像在哪個文件夾 瀏覽:464
加密驗證的門禁卡 瀏覽:741
java輸出心 瀏覽:532
程序員的身體素質調查 瀏覽:383
python做一個登錄系統怎麼改界面 瀏覽:884
楊穎緩解壓力的方法 瀏覽:144
約苗app在哪裡改地址 瀏覽:819
tuxedo的加密協議 瀏覽:728
javapdftojpg 瀏覽:713
程序員軟考課程 瀏覽:274
Android框架工程師 瀏覽:387
計算機編程機器人工程師招聘 瀏覽:683
怎麼添加mite伺服器 瀏覽:581
方舟怎麼命令一隻恐龍手機版 瀏覽:712
javaqq郵箱發送 瀏覽:171