gpt4 book ai didi

Android - 从 Binder 到 Broadcasts

转载 作者:行者123 更新时间:2023-11-29 02:14:34 31 4
gpt4 key购买 nike

我从一个标准的本地 android 服务开始,并使用 Binders 和 Listeners 进行通信。然后:我开始注意到处理方向变化的一些严重问题,所以我决定跳过整个 Binder 事情,只使用包含所有需要传递的数据/命令的广播 Intent (并且只使用 startService)。

我的问题是:使用这种方法时需要注意哪些陷阱?

有什么缺点吗?

最佳答案

如果您支持 API 级别 4 及更高级别,请使用 setPackage() 使您的“广播”成为“窄播”——将广播保留在您的应用中。默认情况下,广播是真正广播给所有应用程序的,这对您的数据来说可能是好事,也可能不是好事。

不要忘记取消注册您的 BroadcastReceiver(即,不要注册并忘记它)。同时,您需要考虑如果服务结束并且 Activity 早已消失(例如,BACK 按钮)该怎么办。一种方法是使用具有低优先级 list 注册接收器的有序广播,如果没有 Activity 处理广播,它将引发 Notification -- this sample app证明了我的意思。

您可能会考虑使用 Messenger 而不是广播方法,因为它本质上是一种“窄播”,可能会少一点开销,而且不会泄露。不过,我仍在研究将其用于配置更改的机制。

关于Android - 从 Binder 到 Broadcasts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084270/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com