私は2つのAsyncTaskを使用していますが、1つはFragmentActivityでダイアログが返され、呼び出された.executeの後にコードがあります。他の.execute
はちょうどif...else
で呼び出されます。別のダイアログが返された後に呼び出されたもの、実行されたもの、実行されたもの、実行後のアクティビティが前のアクティビティにポップバックされ、すべてが機能します。AsyncTask onPostExecuteは前のアクティビティに戻りません
他のonPostExecute
は呼び出されません。私はdoInBackground
の中でブレークポイントを実行し、ヌルを返しますが、他のものと同じですが、onPostExecuteは起こりません。一つのFragementActivityにあまりにも多くのAsyncTaskを持つか、実行するコールが多すぎますか?私は固執して、何かばかげていることを願っています。私はコードを掲示していますが、なぜonPostExecuteがAddEventWorker
で呼び出されないのかを実際に理解することはできませんが、AddEventFromDialogWorker
にあります。私がアプリケーションをテストする方法では、AddEventFromDialogWorkerが呼び出され、動作し、AddEventWorkerの何かが機能しません(onPostExecute
ではなくdoInBackground
を実行します)。
試してみるためのアイデアや手段はありますか?あなたは、基本クラスonPostExecute()メソッドをオーバーライドしていないので、
private class AddEventWorker extends AsyncTask<Void, Void, Void>{
protected void onPostExecute() {
getFragmentManager().popBackStack();
}
@Override
protected Void doInBackground(Void... params) {
mGoogleApi.addEvent(mSession, allGoogleAccounts.get(0).getGoogleCalendarName());
return null;
}
}
private class AddEventFromDialogWorker extends AsyncTask<String, Void, Void>{
protected void onPostExecute() {
Toast.makeText(mContext, "Event added to google calendar!", Toast.LENGTH_SHORT);
getFragmentManager().popBackStack();
}
@Override
protected Void doInBackground(String... params) {
mGoogleApi.addEvent(mSession, params[0]);
return null;
}
}
これら2つのクラスを呼び出すコードを投稿できますか? – Jack