我在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的专家,我想要获得快速应用的主要内容。谢谢你的回答!
答案 0 :(得分:0)
Bundle-object仅适用于存储简单类型。不建议将大型Bitmap对象转换为字节数组。
是的,您绝不应该通过Intent
传输大数据。这不是数据类型,而是大小。
第二条路径,用于将对象打包在Parcel中并在Intent中设置。然后使用BroadcastReceiver捕获它。如何在广播消息中发送大对象?
同样的事情,发送邮件仍然需要Intent
,这有限制。
或者只是将其保存为静态变量?
这可行,但这是一个糟糕的架构。如果你这样做,你将始终不得不考虑那个静态字段,并始终确保你没有保持对你不再需要的Bitmap
的静态引用。我强烈建议不要这样做。
相反,您可以将Bitmap
对象存储到磁盘,然后在Activity
中读取它。以下是一个示例:Save bitmap to location