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

熱點內容
北京程序員的一天望京soho 瀏覽:665
小程序怎麼保存編譯 瀏覽:762
linuxhba卡驅動 瀏覽:540
2016證券從業資格教材pdf 瀏覽:387
windows系統pdf 瀏覽:354
伺服器機箱如何干擾信號 瀏覽:364
android引用系統資源文件 瀏覽:986
伺服器虛擬機操作系統下載地址 瀏覽:945
打開php文件的軟體 瀏覽:36
js傳參數給php 瀏覽:991
編譯手冊怎麼寫 瀏覽:125
android獲取item高度 瀏覽:697
數學函數PDF 瀏覽:444
python手機自動化操作 瀏覽:732
廣東工業伺服器及存儲雲主機 瀏覽:80
壓縮機軸頭漏冷媒 瀏覽:734
遇到技術差的程序員 瀏覽:171
加密要幾個控制點 瀏覽:208
html格式編譯的文件怎麼打開 瀏覽:201
如何自選伺服器 瀏覽:386