[英]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.