4

我的要求是:我的应用需要注册某些广播。如果我Activity在收到广播时正在“显示”,那么我会更新 UI;否则,我显示一个Notification.

Commonsware 已经为此提出了一个优雅的解决方案。使用有序广播。我的问题是我想在本地完成所有这些,即在我的过程中。不幸的是,LocalBroadcastManager没有sendOrderedBroadcast()等价物。

  • 这只是一个疏忽LocalBroadcastManager吗?
  • 或者它是否指向最佳实践(大意是在本地发送有序广播是一个坏主意)?如果是这样,为什么?
  • 或者这完全没有必要并且可以通过其他方式来实现?
4

2 回答 2

0

这只是 LocalBroadcastManager 中的疏忽吗?

谷歌没有无限的工程时间。

或者它是否指向最佳实践(大意是在本地发送有序广播是一个坏主意)?

我对此表示怀疑。

您是否考虑过在 Activity 类中使​​用 onUserLeaveHint() 和 onUserInteraction() 回调?

onUserLeaveHint()在这里是不够的(例如,不包括用户接听来电的情况),我看不出有什么onUserInteraction()帮助。

于 2012-05-15T10:29:03.237 回答
0

我最终实现了自己LocalBroadcastManager的有序广播功能。该项目在 github 上共享

虽然它符合我的直接目的,但它的边缘仍然很粗糙。它需要一些增强(例如,setResult*andgetResult*方法)。欢迎代码贡献:)

于 2012-05-28T03:58:04.253 回答