andriod 5 InputStream inputStream = conn.getInputStream();报错
时间: 2023-12-27 22:24:07 浏览: 77
Java I/O总结
4星 · 用户满意度95%
根据提供的引用内容,可以看出在Android 5中使用`InputStream inputStream = conn.getInputStream();`会报错。这可能是因为在Android 5中,网络请求需要在子线程中执行,而不能在主线程中执行。因此,你需要将网络请求放在一个异步任务中执行,以避免报错。
以下是一个示例代码,展示了如何在Android 5中正确地使用`InputStream`获取网络数据:
```java
// 在主线程中创建异步任务
new AsyncTask<Void, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... params) {
try {
// 在子线程中执行网络请求
URL url = new URL("http://example.com/image.jpg"); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();
// 获取输入流并解码为Bitmap
InputStream is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
// 关闭输入流
is.close();
// 返回Bitmap
return bitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(Bitmap bitmap) {
// 在主线程中更新UI,将Bitmap显示在ImageView中
if (bitmap != null) {
imageView.setImageBitmap(bitmap);
}
}
}.execute();
```
请注意,上述代码中的`imageView`是一个`ImageView`实例,用于显示获取到的图片。你需要将其替换为你自己的`ImageView`实例。
阅读全文