androidservice線程
發布時間: 2024-12-22 13:04:57
1. android:當Activity和Service 都被銷毀後,如何控制其中生成的線程
線程沒有被銷毀的,當Activity或者Service中還有活動線程的時候,垃圾回收器是不會回收銷毀Activity和Service對象的。舉個例子,你可以在Activity中啟動一個線程,在onDestroy中用System.out.print或者log輸出一個信息,然後通過按鈕調用finish方法,會發現點擊以後Activity會「關閉」,但只是不可見了,但是沒有調用onDestroy方法。除非你在onDestroy中關閉了線程才會關閉。
線程管理一般是通過一個布爾類型值保存其狀態,通過判斷它是否為空,一起來處理。這樣最簡單。
就是在onDestroy中處理的,你說沒有調用,是因為還有子線程在運行。在onDestroy中判斷線程狀態,正常關閉線程以後就行了。
2. android中service的實現方法是
非同步執行
android中,activity、service都是在主線程,service與activity的主要區別就是service沒有前台界面,不能直接與用戶交互,另外可以相對保證不會被系統隨便的kill掉。所以service適用於一些無需交互的後台操作,但如果你直接在service中進行耗時操作的話,因為在主線程所以依然會出現和activity主線程一樣的超時的問題,所以好的方式是在service中啟動其他的線程去執行耗時操作。
熱點內容