假设我使用以下AsycTask(称为A)通过互联网发送数据:
private class A extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = ProgressDialog.show(context, "Notification", "Sending message...");
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
sendMessage();
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(pd!=null && pd.isShowing())
pd.dismiss();
}
}
在里面doInbackground被称为我的方法sendMessage()。我不会详细介绍这个方法,只是想象这个方法执行一个Thread(假设它被称为B)。
所以,问题是:
AonPostExecute()里面的代码会在B结束后执行吗?AsyncTask Thread
如果没有,如何使 onPostExecute 仅在AsyncTasksendMessage() 内部终止时才执行?