用于从Facebook加载照片的AsyncTask - 始终返回null

时间:2018-02-23 13:12:02

标签: android android-asynctask kotlin inputstream httpurlconnection

我正在使用array<array<string>>从Facebook加载照片。 主要问题是AsyncTask(类bitmapProf,方法 - AsyncTaskLoadPhoto)始终返回doInBackground。 我使用调试器和日志搜索错误但未找到错误。

这是我的代码:

null

2 个答案:

答案 0 :(得分:0)

} catch (e: Exception) {
  e.printStackTrace()
 }

即使没有日志声明,您也会吞下异常。 e.printStackTrace()在Android中没有明显效果。然后您的方法返回null

作为参考,如果你采用了Kotlin协同程序,这就是你的代码变得多么简单:

class MyActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        launch(UI) {
            try {
                imgProfile.setImageBitmap(loadImg())
            } catch (e: Exception) {
                // handle it here
            }
        }
    }

    private suspend fun loadImg(): Bitmap = withContext(CommonPool) {
        val stringURL = "http://graph.facebook.com/userID/picture?width=150&width=150"
        val imgURL = URL(stringURL)
        val connection = imgURL.openConnection() as HttpURLConnection
        connection.connect()
        BitmapFactory.decodeStream(connection.inputStream)
    }
}

此代码尚未清除,您必须检查connection.responseCode以查看输入流是包含图像数据还是仅包含一些错误消息。

答案 1 :(得分:-1)

试试这段代码:

ImageLoader.getInstance().displayImage(imgurl, image_propertypic, new ImageLoadingListener() {
                        @Override
                        public void onLoadingStarted(String imageUri, View view) {

                        }

                        @Override
                        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {

                        }

                        @Override
                        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                            image_propertypic.setImageBitmap(loadedImage);
                        }

                        @Override
                        public void onLoadingCancelled(String imageUri, View view) {

                        }
                    });