繁体   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