Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在本地(我的流程内)发送有序广播?_Java_Android_Android Intent_Broadcastreceiver - Fatal编程技术网

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保护“正常”发送到自己应用程序的广播的正确方法是什么?(有可能吗?)