インターネット経由でデータを送信するために次の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は、my メソッド sendMessage() が呼び出されます。このメソッドの詳細については触れませんが、このメソッドが a を実行することをThread想像してみてください (これが と呼ばれていると仮定しますB)。
したがって、質問は次のとおりです。
A の内部のコードonPostExecute()は、 B ?の終了後に実行されます。AsyncTask Thread
AsyncTaskそうでない場合、 sendMessage()の内部が終了するときにのみ onPostExecute が実行されるようにするにはどうすればよいですか?