我对接口不是很熟悉,所以我想知道,将一个活动的引用传递给一个异步任务,然后在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/

10-17 01:23