假设我使用以下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 仅在AsyncTask
sendMessage() 内部终止时才执行?