Android 執行緒和Timer的銷毀

2021-06-25 17:16:35 字數 850 閱讀 6169

在android開發中,經常會用到執行緒和timer,如果沒有主動關閉它們,當程式結束時,執行緒並沒有被銷毀,而是一直在後台執行著,當我們重新啟動應用時,又會重新啟動乙個執行緒,周而復始,你啟動應用次數越多,開啟的執行緒數就越多,你的機器就會變得越慢。還會導致意思不到的錯誤。

1、執行緒的銷毀

hanlder是執行緒與activity通訊的橋梁,利用handler接收到任務執行緒,放到任務佇列裡面派對執行。

//呼叫該任務執行緒的run() 方法執行任務執行緒。

handler updatebarhandler =new handler();

handler.post(runnable thread);

//移除handler裡的任務執行緒,呼叫執行緒的stop()方法,銷毀執行緒。

handler.removecallbacks(runnable thread);

乙個簡單的例子如下:

2、timer的銷毀

預設情況下,只要乙個程式的timer執行緒在執行,那麼這個程式就會保持執行。當然,你可以通過以下四種方法終止乙個timer執行緒:

a)呼叫timer的cancle方法。你可以從程式的任何地方呼叫此方法,甚至在乙個timer task的run方法裡;

b)讓timer執行緒成為乙個daemon執行緒(可以在建立timer時使用new timer(true)達到這個目地),這樣當程式只有daemon執行緒的時候,它就會自動終止執行;

c)當timer相關的所有task執行完畢以後,刪除所有此timer物件的引用(置成null),這樣timer執行緒也會終止;

d)呼叫system.exit方法,使整個程式(所有執行緒)終止。

Android中的Timer和Handler的使用

timer timer主要用於執行一次性任務或者按照某個時間間隔迴圈執行某個任務,但對於迴圈執行來說,又分為兩種情況。第一種是fixed period execution,呼叫schedule timertask,delay,period 方法即可,這種迴圈執行任務的特點是,下一次執行的開始時間是從...

Android的執行緒和執行緒池

執行緒是作業系統排程的最小單元 執行緒是乙個受限制的系統資源,即不能無限制的產生。執行緒的建立銷毀都有相應的開銷 時間片輪轉的方式排程每個執行緒 用途來講分為主線程和子執行緒 主線程 更新ui 子執行緒 耗時操作 在android中扮演執行緒的角色 thread,asynctask,intentse...

Android 計時器Timer用法

先看段 這個例項化了乙個handler,handler可以通過message在多個執行緒通訊,我這裡做的是定時reclen加1,然後以一定的格式,顯示到rectime上 ui執行緒上的操作 final handler handler new handler super.handlemessage m...