- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
LocalBroadcastManager.sendBroadcast() 的返回值( bool 值)没有记录。
我想当至少有一个接收者被注册时它返回 true,如果没有接收者被注册则返回 false。这是正确的吗?
关于此缺失文档存在未决问题:Issue 59626
最佳答案
是的,它会检查可用的接收器,如果没有找到则返回 false:
来自 method
219 ArrayList<ReceiverRecord> receivers = null;
220 for (int i=0; i<entries.size(); i++) {
221 ReceiverRecord receiver = entries.get(i);
222 if (debug) Log.v(TAG, "Matching against filter " + receiver.filter);
223
224 if (receiver.broadcasting) {
225 if (debug) {
226 Log.v(TAG, " Filter's target already added");
227 }
228 continue;
229 }
230
231 int match = receiver.filter.match(action, type, scheme, data,
232 categories, "LocalBroadcastManager");
233 if (match >= 0) {
234 if (debug) Log.v(TAG, " Filter matched! match=0x" +
235 Integer.toHexString(match));
236 if (receivers == null) {
237 receivers = new ArrayList<ReceiverRecord>();
238 }
239 receivers.add(receiver);
240 receiver.broadcasting = true;
241 } else {
242 if (debug) {
243 String reason;
244 switch (match) {
245 case IntentFilter.NO_MATCH_ACTION: reason = "action"; break;
246 case IntentFilter.NO_MATCH_CATEGORY: reason = "category"; break;
247 case IntentFilter.NO_MATCH_DATA: reason = "data"; break;
248 case IntentFilter.NO_MATCH_TYPE: reason = "type"; break;
249 default: reason = "unknown reason"; break;
250 }
251 Log.v(TAG, " Filter did not match: " + reason);
252 }
253 }
254 }
255
256 if (receivers != null) {
257 for (int i=0; i<receivers.size(); i++) {
258 receivers.get(i).broadcasting = false;
259 }
260 mPendingBroadcasts.add(new BroadcastRecord(intent, receivers));
261 if (!mHandler.hasMessages(MSG_EXEC_PENDING_BROADCASTS)) {
262 mHandler.sendEmptyMessage(MSG_EXEC_PENDING_BROADCASTS);
263 }
264 return true;
265 }
266 }
267 }
268 return false;
关于android - LocalBroadcastManager 类的 sendBroadcast 方法返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901172/
我在从作为系统应用程序加载到自定义 ROM 中的应用程序发送 Broadcast 时遇到问题(使用 android:sharedUserId="android.uid.system" 在 Manife
sendBroadcast() - 它应该在 Activity 中调用吗?我正在尝试从不扩展 Activity 的实用程序类方法调用 sendBroadcast()。我收到如下编译错误 The met
我有一个广播来检查网络,当网络改变状态时,我用 onNetworkActivated() 或 onNetworkInactivated() 通知我的 Activity : public class N
我有一个列表,我试图使用 Intent 来广播它。在学习了在线教程后,建议我使用 Parcelable 来发送此数据。但是,我在 logcat 中不断收到此错误: Caused by: java.la
我正在使用 sendBroadcast 进行媒体文件扫描。然后我需要等到完成sendBroadcast 之后。我如何在 Android 中执行此操作? 我知道我可以在这里使用简单的 while 逻辑,
我现在已经尝试了 10 多个小时,但我似乎无法考虑任何其他事情。我尝试了互联网上所有可能的示例,但没有成功。 我有扩展NotificationListenerService的NotificationM
很想知道 sendBroadcast 的内部工作原理,如果有人能解释一下就好了。请指出实际的实现。 我在看android源码 ContextWrapper.java 包含 sendBroadcast(
我没遇到什么问题。我正在刷新我的 SD 卡: sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + E
我又遇到了一个与 Android 相关的问题。这只是为了让我更深入地了解发送广播的工作原理。 我想知道的是: 1。为什么要在 Activity 上使用广播接收器来获取结果? 我认为广播接收器对于处理实
在广播接收器中发送广播有什么问题吗? 最佳答案 我认为从 BroadcastReceiver 中再次发送广播没有任何问题。 你可以看到类似的例子here. 要了解有关广播接收器的更多信息,请参阅 th
我有一个创建线程的服务。该线程做了一些工作,然后在 Service 上调用 sendBroadcast()。这意味着 sendBroadcast() 是从工作线程调用的,而不是从运行服务的线程调用的。
我有两个应用程序,App A 和 App B。 App A 需要向 App B 发送一些数据(或进行通信以做某事)。 最好的方法是什么。App B 可以有一个广播监听器来接收来自 App A 的广播。
startActivity() 和 sendBroadcast() 有什么区别?我们可以使用 startActivity() 来启动一个 Activity 。sendBroadcast() 也可以这样
我正在尝试修改作为 Android Studio 示例提供的 BluetoothLeGatt 项目,以便在每次读取特征时将 RSSI 值发送回主要 Activity 以供显示。我创建了一个新的 Int
我正在使用 IntentService 从远程源获取数据。当服务获取数据后,它使用 sendBroadcast(intent) 广播它。 在我的主要 Activity 中,我扩展了 Broadcast
LocalBroadcastManager.sendBroadcast() 的返回值( bool 值)没有记录。 我想当至少有一个接收者被注册时它返回 true,如果没有接收者被注册则返回 false
我想制作一个库,以同步方式(从客户端)执行一些 Intent 发送/接收的东西。这样我图书馆的客户就不必关心接收器的实现了。 图书馆会在某处发送 Intent 并接收响应。然后将结果同步返回给客户端。
我怎样才能摆脱编译错误? sendBroadcast(intent); 此方法在我制作的另一个应用程序中运行良好,但在当前应用程序中存在编译错误。红色下划线有错误消息“未定义新的 Runnable 类
我在服务中的线程池中有一个线程可以做很多事情。最后,它将一些数据插入提供程序并发送广播以通知 GUI 有关新数据的信息。 经常发送和接收 1-3 个广播,然后不再接收广播。当我查看线程堆栈跟踪时,它们
我有一个应用程序,它会在启动后立即发送一个广播,这样它就可以获得可用图像的刷新列表。直到今天这一切都很好(至少那是我注意到这一点的时候)。 它仍会启动,但一旦调用 Intent,焦点就会转移到主屏幕应
我是一名优秀的程序员,十分优秀!