我正在编写一个旨在与其他应用程序绑定的Android服务。它使用Messenger
作为IBinder
。
现在我遇到了一个问题:如果我想发送只包含Message
和what
的{{1}},我本来打算使用String
。
根据文档说明,这不起作用:
使用Messenger跨进程发送消息时,如果它包含框架类的Parcelable(不是由应用程序实现的),则只能为非null。对于其他数据传输,请使用setData(Bundle)。
这引发了两个(相关)问题:
Message.obj
不是String
?答案 0 :(得分:1)
1)因为它与Java的String类兼容,该类不是Parcelable(因为Java标准库中不存在) 2)因为通常不需要这样做,所以在大多数情况下都可以直接通过有线方式发送而无需打包。您刚刚发现了一个怪异的死角案例。
必须说,在活页夹上使用消息有点奇怪。通常,您只是将数据作为单个参数发送到呼叫。