У меня есть две AsyncTasks, которые я использую, один вызывается после того, как диалог возвращается в FragmentActivity, и после вызова .execute я вызываю код. Другой .execute
называется только в if...else
. Тот, который вызван после следующего диалога, возвращается, делает то, что он должен, он выполняет, при выполнении post он возвращает активность в предыдущую, и все работает.AsyncTask onPostExecute не возвращается к предыдущему действию
Другой onPostExecute
никогда не называется. Я сделал точку останова в doInBackground
, которая выполняет и возвращает нуль, как и другой, но onPostExecute никогда не происходит, есть ли проблема с слишком большим количеством AsyncTasks в одной FragementActivity или слишком много вызовов для выполнения? Я застрял и надеюсь, что это что-то глупое, я просто не вижу, поэтому я отправляю код, но я действительно не могу понять, почему onPostExecute никогда не вызывается в AddEventWorker
, но делает это в AddEventFromDialogWorker
. То, как я тестирую приложение, которое это делает, происходит, когда AddEventFromDialogWorker вызывается, работает, а затем ничего в AddEventWorker не работает (делает 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;
}
}
Можете ли вы опубликовать код, который называет эти два класса? – Jack