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

熱點內容
資料庫查詢系統源碼 瀏覽:617
php5314 瀏覽:358
完美國際安裝到哪個文件夾 瀏覽:669
什麼app可以掃一掃做題 瀏覽:540
程序員編碼論壇 瀏覽:924
淘點是什麼app 瀏覽:660
中國高等植物pdf 瀏覽:454
51單片機時間 瀏覽:182
後台如何獲取伺服器ip 瀏覽:267
單片機流水燈程序c語言 瀏覽:236
程序員第二職業掙錢 瀏覽:240
運行里怎麼輸入伺服器路徑 瀏覽:843
pythonstepwise 瀏覽:512
劉一男詞彙速記指南pdf 瀏覽:66
php認證級別 瀏覽:371
方舟編譯啥時候推送 瀏覽:1012
php手機驗證碼生成 瀏覽:677
哲學思維pdf 瀏覽:17
凌達壓縮機有限公司招聘 瀏覽:535
weblogic命令部署 瀏覽:39