Java 在本地(我的流程内)发送有序广播?
我的要求是:我的应用程序需要注册某些广播。如果我的Java 在本地(我的流程内)发送有序广播?,java,android,android-intent,broadcastreceiver,Java,Android,Android Intent,Broadcastreceiver,我的要求是:我的应用程序需要注册某些广播。如果我的活动在接收广播时“显示”,则我会更新UI;否则,我将显示一个通知 Commonware为此提出了一个解决方案;使用有序广播。我的问题是,我想在本地进行所有这些,即在我的流程内。不幸的是,没有与之相当的sendOrderedBroadcast() 这只是LocalBroadcastManager中的一个疏忽吗 或者它指向了一个最佳实践(大意是在本地发送有序广播是一个坏主意)?若然,原因为何 或者,这显然是不必要的,可以通过其他方式实现 这只是L
活动
在接收广播时“显示”,则我会更新UI;否则,我将显示一个通知
Commonware为此提出了一个解决方案;使用有序广播。我的问题是,我想在本地进行所有这些,即在我的流程内。不幸的是,没有与之相当的sendOrderedBroadcast()
- 这只是
LocalBroadcastManager
中的一个疏忽吗
- 或者它指向了一个最佳实践(大意是在本地发送有序广播是一个坏主意)?若然,原因为何
- 或者,这显然是不必要的,可以通过其他方式实现
这只是LocalBroadcastManager中的一个疏忽吗
谷歌没有无限的工程时间
或者它指向了一个最佳实践(大意是在本地发送有序广播是一个坏主意)
我对此表示怀疑
您是否考虑过在Activity类中使用onUserLeaveHint()和onUserInteraction()回调函数
onUserLeaveHint()
在这里是不够的(例如,不包括用户接听来电的情况),我看不出onUserInteraction()
有什么帮助。我最终实现了自己的带有有序广播功能的LocalBroadcastManager
。该项目正在进行中
虽然它符合我的直接目的,但它的边缘仍然粗糙。它需要一些增强(例如,setResult*
和getResult*
方法)。欢迎代码贡献:)您是否考虑过在活动
类中使用onUserLeaveHint()
和onUserInteraction()
回调?文档说,这些回调专门用于帮助活动决定何时取消通知。看起来这些是我需要注册/注销接收器的方法。我仍然不明白使用这种方法如何避免有序广播。您可以在这些回调中启动和停止服务以发送通知..?我明白您的意思。我会试试看。虽然我仍然倾向于一个有序的广播解决方案。我很抱歉——当我提到“疏忽”时,我并没有打算对谷歌大发雷霆。我猜@userSeven7s的意思是停止在onUserInteraction()
中引发通知的后台服务,并在用户即将离开onUserLeaveHint()
时启动此服务。我认为这意味着与分别在onPause()
/onStop()
或“onResume()”/onStart()
中执行相同操作相比,更细粒度的控件。我还没有完整的图片。@Commonware保护“正常”发送到自己应用程序的广播的正确方法是什么?(有可能吗?)