我有一个典型的AsyncTask
,我希望从我的Activity
类和UI逻辑中正确地解耦。
我想这样做:
制作听众界面
public interface MyTaskListener {
void onTaskProgress(...);
void onTaskDone(...);
}
制作Activity
工具MyTaskListener
并传递this
任务创建参考。
在onPreExecute()
,onProgressUpdate()
和onPostExecute()
中调用侦听器方法。
但是,我可能会重新启动,Android框架已经实现了更好的功能?我想到了类似EventBus
模式的东西,所有感兴趣的人都可以注册我可以从AsyncTask
开始的特定事件类型。
答案 0 :(得分:1)
接口是最干净的方式,因为你的任务类是“密封的”,对周围的环境一无所知(不会访问外部类的任何东西,当你使用内部类时这很有诱惑力)并与通用通信信道。