Ric*_*ich 13 android android-service android-handler
我有一个主要的活动和约束服务.绑定服务从网络接收命令,该命令触发将消息发送到主活动中的处理程序.通过传递Handler对服务的引用,我得到了一切.然后......我偶然发现了一个叫做Messenger的东西.
Messenger:引用Handler,其他人可以使用它向其发送消息.这允许跨进程实现基于消息的通信,方法是在一个进程中创建指向Handler的Messenger,并将该Messenger交给另一个进程.
这引发了一些问题:
术语过程是否意味着我不需要使用Messenger,除非我根据Process和Thread指南生成一个单独的过程?
这是对的.Messenger如果要绑定远程服务(例如,在另一个进程中运行),则需要a .在这种情况下,为远程服务提供指向您的指针的唯一选择Handler是使用a Messenger.
使用Messenger总是好的做法吗?
我不会这么说.在真正需要时使用它 - 用于远程服务或者如果您在不绑定它的情况下启动服务.您可以将其Messenger作为额外包装进入Intent并开始使用它.因此,您可以将引用传递给Handler不绑定服务.这是另一种Messenger有用的情况.
通过对Handler的引用通常是个坏主意吗?
如果您Handler在活动开始和停止时正确处理注册和注销,那么您应该没问题.那时就没有必要使用Messenger本地服务了.如果您没有正确注销处理程序,则会出现内存泄漏(服务引用处理程序,处理程序引用已停止的活动).
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |