【问题标题】:The best way get Bitmap from android IntentService to get从 android IntentService 获取 Bitmap 的最佳方式
【发布时间】:2016-05-12 14:23:42
【问题描述】:

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

void onReceiveResult (int resultCode, Bundle resultData)

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

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

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

【问题讨论】:

  • 您是否尝试将其存储在磁盘上,然后在您的 Activity 中读取?
  • 我正在寻找最好的方法。但是,我可以在 android 文件系统中写为 File

标签: android web client intentservice


【解决方案1】:

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

是的,您永远不应该通过Intent 传输大数据。这与数据类型无关,而与大小有关。

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

同样的,发消息还是需要Intent,有限制。

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

这可行,但这是一个糟糕的架构。如果您这样做,您将始终需要考虑该静态字段,并始终确保您没有保留对您不再需要的 Bitmap 的静态引用。我强烈不推荐这个。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2013-03-17
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多