Skip to main content

Broadcast

  • Normal broadcasts : asynchronous
  • Ordered broadcasts : synchronous
intent intent = new Intent("com.example.broadcastTest.MY_BROADCAST");
sendBroadcast(intent);

Register Receiver

In Activity

//Custom BroadcastReceiver,Override onReceive methods
//intentFilter : action
//前为响应后的行为,后为响应何种广播
registerReceiver(networkChangeReceiver, intentFilter);

//in onDestroy
unregisterReceiver();

In AndroidManifest,xml

<!-- custom receiver class -->
<receiver android:name=".MyBroadcastReceiver">
<!-- receiver priority -->
<intent-filter android:priority="100">
<!-- custom broadcast -->
<action android:name="com.example.broadcastTest.MY_BROADCAST" />
</intent-filter>
</receiver>

Ordered

intent intent = new Intent("com.example.broadcastTest.MY_BROADCAST");
sendOrderedBroadcast(intent, null);

Local

// 获取实例
localBroadcastManager = LocalBroadcastManager.getInstance(this);
localBroadcastManager.sendBroadcast(intent); // 发送本地广播

Local Receiver

localBroadcastManager.registerReceiver(CustomReceiver, intentFilter);
localBroadcastManager.unregisterReceiver(CustomReceiver);