消息中字符串的优雅解决方案

问题描述 投票:0回答:1

我正在编写一个旨在受其他应用程序约束的Android服务。它使用Messenger作为IBinder

现在我已经解决了一个问题:如果我想发送一个只有MessagewhatString我原本计划使用Message.obj。这不适用于文档说明:

当使用Messenger跨进程发送消息时,如果它包含框架类的Parcelable(不是应用程序实现的框架类),则它只能是非null。对于其他数据传输,请使用setData(Bundle)。

这提出了两个(相关的)问题:

  1. 为什么String不是Android中的Parcelable
  2. 是否有一个更“优雅”的解决方案,而不是为它创建一个Bundle并在那里设置我的字符串?
android ipc message-queue parcelable
1个回答
1
投票

1)因为它兼容Java的String类,它不是Parcelable(因为它在java标准库2中不存在)因为它通常不需要be-string就可以通过线路本地发送而不是在大多数情况下可以分配。你刚发现了一个奇怪的角落案例。

要说,使用Binder上的消息有点奇怪。通常,您只需将数据作为单独的参数发送到呼叫。

© www.soinside.com 2019 - 2024. All rights reserved.