java - onPostExecute 不会在 AsyncTask Android 上被调用

标签 java android android-asynctask

我在 SO 上看到了所有类似的问题,我在其他 Activity 中使用 AsyncTask,但只有在这个 Activity 中没有调用 onPostexecute。

这是我经过数小时尝试后的代码。

class GetCamera1Task extends AsyncTask<Void, Void, Integer> {

        private final ProgressDialog dialog = new ProgressDialog(
                CameraGallery.this);

        @Override
        protected void onPreExecute() {
            this.dialog.setMessage("Loading...");
            this.dialog.show();
        }

        protected void onPostExecute(int result) {
            System.out.println("onPostExecute");
            this.dialog.dismiss();


        }

        @Override
        protected Integer doInBackground(Void... params) {
            // TODO Auto-generated method stub
            bitmapResult1 = getBitmapFromURL(url[0]); 
            bitmapResult2 = getBitmapFromURL(url[1]);
        }
            System.out.println("should return");

            return 1;
        }

    }

其中所有变量都是全局变量。 正在打印应返回但未调用 onPost 执行。

我也试过我的 onBackground 返回 null 和 sceleton 是这样的:

class GetCamera1Task extends AsyncTask<Void, Void, Void> {
protected void onPostExecute() {
}
protected Integer doInBackground(Void... params) {
... return null;
}
}

但还是没有。

从url下载位图的代码是这样的:

public Bitmap getBitmapFromURL(String src) {
        try {
            URL url = new URL(src);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap myBitmap = BitmapFactory.decodeStream(input);
            return myBitmap;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

最佳答案

您将通用参数定义为 AsyncTask<Void, Void, Integer> ,然后使用 intonPostExecute() .尝试更换

protected void onPostExecute(int result)

protected void onPostExecute(Integer result)

关于java - onPostExecute 不会在 AsyncTask Android 上被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556247/

相关文章:

java - 如何将AsyncTask的结果从Activity1发送到Activity2

java - Recyclerview 和 Rest Api

java - 在一个 SOLR 查询中获取多个字段的不同值

android - onlocationchanged 未在 Android 中调用

java - Lucene:获取完整的集合文档作为结果

java - 错误: cannot find symbol variable toolbar

java - 哪些类型的 REST 服务适用于 Android

android - 无法在 Android Studio 中使用 jsoup

java - 正则表达式 java 具有特定的开头,然后是除某些字符之外的任何内容

java - 从 REST Web 服务向客户端发送 .apk 文件?