解决方法 1:

使用一个回调接口或抽象类与抽象的回调方法。

回调接口的示例:

public class SampleActivity extends Activity {

//define callback interface
interface MyCallbackInterface {

void onDownloadFinished(String result);
}

//your method slightly modified to take callback into account
public void downloadUrl(String stringUrl, MyCallbackInterface callback) {
new DownloadWebpageTask(callback).execute(stringUrl);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//example to modified downloadUrl method
downloadUrl("http://google.com", new MyCallbackInterface() {

@Override
public void onDownloadFinished(String result) {
// Do something when download finished
}
});
}

//your async task class
private class DownloadWebpageTask extends AsyncTask<String, Void, String> {

final MyCallbackInterface callback;

DownloadWebpageTask(MyCallbackInterface callback) {
this.callback = callback;
}

@Override
protected void onPostExecute(String result) {
callback.onDownloadFinished(result);
}

//except for this leave your code for this class untouched...
}
}

​onPostExecute​​ 不会到底需要什么。简单的扩展您​​DownloadWebpageTask​​ 与匿名内联类里面你 ​​downloadUrl​

//your method slightly modified to take callback into account 
public void downloadUrl(String stringUrl, final MyCallbackInterface callback) {
new DownloadWebpageTask() {

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
callback.onDownloadFinished(result);
}
}.execute(stringUrl);
}