簡體   English   中英

如何在Android中停止線程?

[英]how to stop a thread in Android?

我正在使用Thread初始化一些資源,同時顯示帶有進度條的啟動畫面,有時會啟動不同的活動(結果)。

起初我使用AsyncTask,它工作得很好,除了我發現我不能使用另一個(Android 1.5)所以我不得不使用一個Thread。

目前,我的代碼如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen);
    m_progressBar = (ProgressBar) findViewById(R.id.progressBar);
    m_progressBar.setMax(10);
    // start the Init process
    Thread thread = new Thread(initTask);
    thread.start();

由於不推薦使用Thread.stop(),並且我不能使用Thread.interrupt(),如果按下后退鍵,我無法阻止線程啟動新的Activity。

有什么建議么?

停止線程需要來自相關線程的合作。 一般的想法是向線程發送信號,並定期檢查該信號然后自行停止。 最簡單的“信號”是它檢查的簡單布爾字段。

首先,您可以同時使用多個AsyncTasks ,對此沒有限制。 出了什么問題?

更新:確實在1.6 AsyncTasks在相同的后台線程上連續執行之前。

其次,java中的線程是合作的 - 你不能殺死一個線程,而是你必須通知它你的意圖被停止然后它自己停止(即退出run方法)。

要發信號停止,只需要一個布爾字段running = true,哪個線程檢查它的主循環。 當運行== false時,線程退出run()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM