我对接口不是很熟悉,所以我想知道,将一个活动的引用传递给一个异步任务,然后在onpostexecute中调用该活动的方法之间有什么区别。这些示例之间的区别是什么,为什么应该使用接口
接口示例
public interface OnTaskCompleted{
void onTaskCompleted();
}
活动:
public YourActivity extends Activity implements OnTaskCompleted{
}
AsyncTask:
public YourTask extends AsyncTask<Object,Object,Object>{
private OnTaskCompleted listener;
public YourTask(OnTaskCompleted listener){
this.listener=listener;
}
protected void onPostExecute(Object o){
listener.onTaskCompleted();
}
}
活动示例
活动:
public YourActivity extends acitivty {
public myCallbackMethod(){
//do something
}
}
异步任务
public YourTask extends AsyncTask<Object,Object,Object>{
private YourActivity act;
public YourTask(YourActivity act){
this.act=act;
}
protected void onPostExecute(Object o){
act.myCallbackMethod();
}
}
最佳答案
这主要是一个品味和设计风格的问题。该接口提供了一个优点,即不需要向Activity
发送AsyncTask
。相反,您可以选择创建一个单独的类来实现接口。
关于java - 为什么我们使用接口(interface)进行回调,而不仅仅是传递对 Activity 的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26080435/