从Android IntentService获取Bitmap获取

时间:2016-05-12 14:23:42

标签: android web client intentservice

我在Android上开发Web客户端。我使用IntentService作为http-request。结果,该对象由IntentService形成,其不仅具有基本类型,而且还具有例如Bitmap对象字段。请告诉我,在Activity中传递对象或其他类的最佳方法。 我尝试使用ResultReceiver,但回调方法只获取Bundle-object:

  

void onReceiveResult(int resultCode,Bundle resultData)

Bundle-object仅适用于存储简单类型。不建议将大型Bitmap对象转换为字节数组。

第二条路径,用于将对象打包在Parcel中并在Intent中设置。然后使用BroadcastReceiver捕获它。如何在广播消息中发送大对象?

也许您可以保存图像并通过OutputStream方式?或者只是将它保存为某个地方的静态变量?我不是Android的专家,我想要获得快速应用的主要内容。谢谢你的回答!

1 个答案:

答案 0 :(得分:0)

  

Bundle-object仅适用于存储简单类型。不建议将大型Bitmap对象转换为字节数组。

是的,您绝不应该通过Intent传输大数据。这不是数据类型,而是大小。

  

第二条路径,用于将对象打包在Parcel中并在Intent中设置。然后使用BroadcastReceiver捕获它。如何在广播消息中发送大对象?

同样的事情,发送邮件仍然需要Intent,这有限制。

  

或者只是将其保存为静态变量?

这可行,但这是一个糟糕的架构。如果你这样做,你将始终不得不考虑那个静态字段,并始终确保你没有保持对你不再需要的Bitmap的静态引用。我强烈建议不要这样做。

相反,您可以将Bitmap对象存储到磁盘,然后在Activity中读取它。以下是一个示例:Save bitmap to location