我在一个单独的类中有Async,我需要在一些文本视图上更改setText 这怎么可能? 或者我应该在我的班级中保留AsyncTask吗?
private class DownloadImageTask extends AsyncTask<Object, Void, AdModel> {
@Override
protected AdModel doInBackground(Object... params) {
return getAd();
}
protected void onPostExecute(AdModel result) {
textTitle.setText(result.getTitle());
}
}
答案 0 :(得分:2)
您可以为AsyncTask创建一个构造函数,该构造函数引用您的活动。您可能要小心不要在AsyncTask完成时将其归零,从而不泄漏活动引用。
答案 1 :(得分:0)
私有类DownloadImageTask扩展了AsyncTask {
private TextView text;
DownloadImageTask(TextView txtToUpdate) {
text = txtToUpdate;
}
@Override
protected AdModel doInBackground(Object... params) {
return getAd();
}
protected void onPostExecute(AdModel result) {
text.setText(result.getTitle());
text = null;
}
}
或..better ...创建监听器接口,您将在onPostExecute中调用它。监听器接口的实现应该更新TextView。