如何从异步任务发送事件消息(最佳实践)?

时间:2013-07-26 07:50:41

标签: android android-asynctask

我有一个典型的AsyncTask,我希望从我的Activity类和UI逻辑中正确地解耦。 我想这样做:

  1. 制作听众界面

    public interface MyTaskListener {   
        void onTaskProgress(...);   
        void onTaskDone(...);
    }
    
  2. 制作Activity工具MyTaskListener并传递this任务创建参考。

  3. onPreExecute()onProgressUpdate()onPostExecute()中调用侦听器方法。

  4. 但是,我可能会重新启动,Android框架已经实现了更好的功能?我想到了类似EventBus模式的东西,所有感兴趣的人都可以注册我可以从AsyncTask开始的特定事件类型。

1 个答案:

答案 0 :(得分:1)

接口是最干净的方式,因为你的任务类是“密封的”,对周围的环境一无所知(不会访问外部类的任何东西,当你使用内部类时这很有诱惑力)并与通用通信信道。