當前位置:編程學習大全網 - 遊戲軟體 - 如何中斷Android線程

如何中斷Android線程

當妳在後臺使用Thread或者AsyncTask來處理壹些耗時的操作時,可能想要對這些線程加以控制,其中包括中斷線程。很多情況下,當用戶啟動程序的時候,壹個後臺運行的線程會同時啟動去加載內容。但是,當用戶離開程序時,線程應該被打斷,因為現在用戶已經不再關註程序了,同時也不再關註線程處理的結果,而線程是要占用系統的資源的,如果不及時中斷線程,會導致系統資源的浪費。除此之外,妳可以使用Thread.interrupt()或者AsyncTask.cancel()方法,但是這不會馬上中斷線程,因此,只能在自己的線程中實現中斷並退出。在許多情況下,後臺運行的線程都有壹個主循環,因此妳可以在循環中判斷線程是否被中斷,若被中斷,則退出循環,從而結束進程。例如壹個線程下載線程,可以通過isInterrupted()方法判斷當前線程是否被中斷。thread=newThread(){publicvoidrun(){while(!isInterrupted()&&hasMoreDataToDownload()){downloadAndWriteSomeMore();}if(isInterrupted()){deleteThePartiallyDownloadedFile();}else{callBack();}}}thread.start();thread.interrupt();如果線程被中斷,則調用deleteThePartiallyDownloadedFile()函數,刪除沒有完成下載的文件。當線程沒有被中斷,則調用callBack()函數,可以使用handler發送下載完成的信息。如果妳的線程中沒有這樣壹個主循環,例如只是執行壹個很耗時的SQL查詢操作,可以在查詢操作之後調用來判斷是否需要結束線程。

  • 上一篇:銀川天氣情況?
  • 下一篇:大喜事是什麽?怎麽寫呢?
  • copyright 2024編程學習大全網