簡體   English   中英

啟動和停止工作線程?

[英]start and stop worker thread?

我正在創建一個應用程序,其中后台服務在該文件夾中解密下載的文件,並將顯示該文件。 用戶單擊所選文件后,它將開始解密,如果用戶單擊該按鈕,解密將停止並以新文件開始。 我嘗試使用線程來啟動和停止此任務。

if (mUpdate!=null) {
             mUpdate.interrupt();
         }

         mUpdate=new Thread() {
             @Override
             public void run() {
                 while (!interrupted()) {
                     // decryption of file and showing file to user
                 }
             }
         };
         mUpdate.start();

如果您想檢查線程是否在while循環中停止,我會寫類似的內容:

class StoppableThread extends Thread {
    private AtomicBoolean mIsStopped = new AtomicBoolean(false);
    public void stopThread() {
        mIsStopped.set(true);
    }
    public boolean isThreadStopped() {
        return mIsStopped.get();
    }
}

暫無
暫無

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

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