android - AsyncTask onPostExecute 不会返回到上一个 Activity

标签 android asynchronous android-3.0-honeycomb

我正在使用两个 AsyncTasks,一个在 FragmentActivity 中返回对话框后调用,并且在我调用的 .execute 之后有代码。另一个 .execute 仅在 if...else 中调用。在另一个对话框返回后调用的那个,执行它应该做的事情,它执行,在执行后它将 Activity 弹回前一个 Activity ,一切正常。

另一个onPostExecute永远不会被调用。我在 doInBackground 中做了一个断点,该断点执行并返回 null,就像另一个断点一样,但 onPostExecute 从未发生,是否存在一个 FragementActivity 中有太多 AsyncTasks 或太多的问题调用执行?我被困住了,希望它是一些我没有看到的愚蠢的东西,所以我发布了代码,但我真的无法弄清楚为什么 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;
            }         
        }

最佳答案

您的 onPostExecute() 方法永远不会被调用,因为您没有重写基类的 onPostExecute() 方法。签名应受到保护 void onPostExecute(Void result)。如果您使用@O​​verride,编译器会告诉您这个问题:)

关于android - AsyncTask onPostExecute 不会返回到上一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060263/

相关文章:

android - 在 Android 上播放 hls/rtmp

javascript - Mocha 中的异步函数

android - 是否可以在 Galaxy Tab 中安装 Eclipse IDE?

android - Android 中已弃用的 AbsoluteLayout 有什么替代方案?

android - 与安卓的蓝牙连接

javascript - React - Axios 数据一旦获取就不会渲染数据

tomcat - 为什么我们不能在Tomcat中使用websocket?

android - 使用 html5 自动播放 mp4 视频

java - android searchview setOnActionExpandListener on Honeycomb 3.2

android - 屏幕旋转时旋转 map 标记?