我正在编写一个旨在受其他应用程序约束的Android服务。它使用Messenger
作为IBinder
。
现在我已经解决了一个问题:如果我想发送一个只有Message
和what
的String
我原本计划使用Message.obj
。这不适用于文档说明:
当使用Messenger跨进程发送消息时,如果它包含框架类的Parcelable(不是应用程序实现的框架类),则它只能是非null。对于其他数据传输,请使用setData(Bundle)。
这提出了两个(相关的)问题:
String
不是Android中的Parcelable
?1)因为它兼容Java的String类,它不是Parcelable(因为它在java标准库2中不存在)因为它通常不需要be-string就可以通过线路本地发送而不是在大多数情况下可以分配。你刚发现了一个奇怪的角落案例。
要说,使用Binder上的消息有点奇怪。通常,您只需将数据作为单独的参数发送到呼叫。