我正在尝试从AsyncTask类的onPostExecute()中检索数据,并将其设置为同一活动的textview的文本(所以只是为了测试我使用toast来查看它是否有效)。
我使用一个接口(使用方法processFinish()),如下所示从onPostExecute()获取数据。
但是外部活动类没有数据: -
interface AsyncResponse{
void processFinish(String[][] output);
}
MainActivity -
public class VPmovies extends Activity implements AsyncResponse {
MyAsyncClass myAsyncClass = new MyAsyncClass();
String[][] mov_details;
protected void onCreate(Bundle savedInstanceState) {
myAsyncClass.asyncResponse=this;
myAsyncClass.execute();
mov_details=new String[6][9];
super.onCreate(savedInstanceState);
setContentView(R.layout.vpmovies);
Toast.makeText(this,"onCreate"+mov_details[0][1],Toast.LENGTH_LONG).show();
// output from here is - "onCreate**null**"
}
public void processFinish(String[][] output) {
mov_details = output;
}
MyAsyncClass的onPostExecute() -
protected void onPostExecute(String[][] strings) {
// super.onPostExecute(strings);
asyncResponse.processFinish(strings);
Toast.makeText(VPmovies.this,"onPostToast"+strings[1][0],Toast.LENGTH_LONG).show();
//THIS prints the data from the array successfully
}
执行onCreate()时,AsyncTask类是否仍然在后台执行其操作?这就是为什么我为数组元素得到null? 有没有办法延迟onCreate()在AsyncTask完成其操作后执行?