Темы и события - как лучше? - PullRequest
0 голосов
/ 06 июля 2011

У меня есть класс, который читает журнал вызовов.Это может длиться несколько минут.Поэтому я должен использовать поток, если я не хочу блокировать поток графического интерфейса.

В C # я запускаю поток, уведомляю поток графического интерфейса с событием о готовности данных и передаю данные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;
      }
   }
}

Пока работает нормально, но я не могу отменить поток таким образом.Я мог бы отменить задачу, но я должен проверить в цикле сбора данных класса calllog, вызывается ли onCancelled, но эта функция известна только в классе GetDataTask, а не в CallLog.

Есть ли способиспользовать AsyncTask и сделать "внешние" классы отменяемыми?Или я переключился на темы и события?Как лучше в этой ситуации?

1 Ответ

0 голосов
/ 06 июля 2011

Может ли это быть тем, что вы ищете: Идеальный способ отменить выполнение AsyncTask ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...