有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过构造函数将实现的侦听器传递给AsyncTask?

界面:

public interface OnTaskCompleted{
    void onTaskCompleted(Document doc);
}

使用此Interface扩展了Activity

public Activity implements OnTaskCompleted{
   //Activity
}

完成后,让AsyncTask发送信息

public MyAsyncTask extends AsyncTask<Object,Object,Object>{ 
    private OnTaskCompleted listener;

    // all your stuff
    public MyAsyncTask(OnTaskCompleted listener){
        this.listener=listener;
    }

    protected void onPostExecute(Object o){
        listener.onTaskCompleted(doc);
    }
}

但是,当我实例化侦听器时,如何将其传递给

public Activity implements OnTaskCompleted{
    //Activity
    @Override
    onTaskCompleted(Object o){
        //Do something in activity
    }
    ...onCreate... {
        asyncTask = new YourTask(???????);
        asyncTask.execute();
    }
}

共 (1) 个答案

  1. # 1 楼答案

    this传递给构造函数:

    asyncTask = new MyAsyncTask(this);
    

    您的活动实现了OnTaskCompleted,因此有资格传递给MyAsyncTask