要从AsyncTask传递数据到Activity,可以使用以下解决方法:
public void receiveData(String data) {
// 处理接收到的数据
}
public class MyAsyncTask extends AsyncTask {
private OnTaskCompleted listener;
public interface OnTaskCompleted {
void onTaskCompleted(String data);
}
public MyAsyncTask(OnTaskCompleted listener) {
this.listener = listener;
}
// doInBackground方法中执行后台任务
@Override
protected void onPostExecute(String result) {
listener.onTaskCompleted(result);
}
}
public class MainActivity extends AppCompatActivity implements MyAsyncTask.OnTaskCompleted {
// ...
private void startAsyncTask() {
MyAsyncTask task = new MyAsyncTask(this);
task.execute();
}
@Override
public void onTaskCompleted(String data) {
receiveData(data);
}
// ...
}
这样,在AsyncTask的onPostExecute方法中调用接口的方法,就能将数据传递给Activity。Activity实现接口后,会收到AsyncTask传递的数据,并调用receiveData方法进行处理。