簡體   English   中英

線程和事件 - 最好的方法是什么?

[英]Threads and Events - what's the best way?

我有一個讀取呼叫日志的 class。 這可能會持續幾分鍾。 所以如果我不想阻塞gui線程,我必須使用一個線程。

在 C# 中,我啟動了一個線程,當數據准備好時用事件通知 gui 線程,並在事件中將數據提供給 gui。

但是我應該如何使用 android 呢? 到目前為止,我讀到的內容告訴我,最好將 AsyncTask 與 android 一起使用。 我以這種方式使用它(偽代碼):

class MyClass{
   private myClassVariable;

   private coid startTask(){
      GetDataTask data = new GetDataTask();
      data.execute(varibale);
   }

   private void displayData{
      doAnythingUsefullHere;
   }


   class GetDataTask extends AsyncTask<variables>{
      protected variable doInBackground(variable){
         return = CallLog.getData();
      }

      protected void onPostExecute(variable){
         myclassVariable = variable;
         displayData;
      }
   }
}

到目前為止工作正常,但我不能以這種方式取消線程。 我可以取消任務,但我必須在調用日志 class 的數據收集循環中檢查是否調用了 onCancelled,但此 function 僅在 class GetDataTask 中已知,而不在 CallLogTask 中。

有沒有辦法使用 AsyncTask 並使“外部”類可以取消? 還是我切換到線程和事件? 在這種情況下最好的方法是什么?

這可能是您正在尋找的: 取消正在執行的 AsyncTask 的理想方法嗎?

暫無
暫無

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

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