Android 添加回调方法扩展活动

Android 添加回调方法扩展活动,android,events,android-activity,callback,implements,Android,Events,Android Activity,Callback,Implements,我正在尝试扩展活动以定义一个可以从AsynchTask回调的标准方法。这是一个基本代码 public class R3Activity extends Activity{ public void displayresult(String xmlresult){ }//displayresult } 现在,我通过扩展R3Activity创建的任何活动都可以实现displayresult方法 然后我使用它如下 public class MainActivity e

我正在尝试扩展活动以定义一个可以从AsynchTask回调的标准方法。这是一个基本代码

public class R3Activity extends Activity{


    public void displayresult(String xmlresult){

    }//displayresult


}
现在,我通过扩展R3Activity创建的任何活动都可以实现displayresult方法

然后我使用它如下

    public class MainActivity extends R3Activity{


    private void somemethod(){
           DatabaseAccess dba = new DatabaseAccess();
           dba.setActivity(this); // Pass a ref to the activity into the class with the Asynch task
           dba.execute(new URL(database_url));

    }

    }

}
DatabaseAccess类应该是一个通用类,它使用AsnchTask启动并获取数据。我的问题是以一种通用的方式处理回调

public class DatabaseAccess extends AsyncTask<URL, String, String> {
        private R3Activity m_activity;

    public void setActivity(R3Activity activity) {
        m_activity = activity;
    }

    @Override
    protected String doInBackground(URL... params) {
           //Connect to database etc
           String strdata = "blah";

        }

    protected void onPostExecute(String result) {
        if ((strdata != null) && (m_activity != null)) {

            m_activity.displayresult(strdata);

        }
    }

}

我认为您应该使用
接口进行回调
。而且您可以很容易地做到这一点

interface AsyncTaskListener{
     public void onTaskComplete(T result)
}
然后实现它

public class MainActivity extends Activity implements AsyncTaskListener
在AsycTask中,onPostExecute方法调用侦听器方法,如

 objAsyncTaskListener.onTaskComplete(T result);

此外,你可以看到这篇文章。我发现它非常有用:谢谢。结果证明这是非常有帮助的。我现在唯一的问题是如何确保用户在活动中基于我的活动的事件中调用super。
 objAsyncTaskListener.onTaskComplete(T result);