如何使用/定位LocalBroadcastManager,如谷歌文档和服务广播文档所述
我试着用谷歌搜索,但一开始没有可用的代码吗?
文件上说,如果我想在我的应用程序的过程中进行内部广播,我应该使用它,但我不知道在哪里可以找到它。
有什么帮助/评论吗?
更新:我知道如何使用广播,但不知道如何使LocalBroadcastManager在我的项目中可用。
发布于 2012-01-16 02:45:29
无论如何我都会回答的。以防万一有人需要。
ReceiverActivity.java
监视名为"custom-event-name"的事件的通知的活动。
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Register to receive messages.
// We are registering an observer (mMessageReceiver) to receive Intents
// with actions named "custom-event-name".
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("custom-event-name"));
}
// Our handler for received Intents. This will be called whenever an Intent
// with an action named "custom-event-name" is broadcasted.
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Get extra data included in the Intent
String message = intent.getStringExtra("message");
Log.d("receiver", "Got message: " + message);
}
};
@Override
protected void onDestroy() {
// Unregister since the activity is about to be closed.
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onDestroy();
}SenderActivity.java
发送/广播通知的第二个活动。
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Every time a button is clicked, we want to broadcast a notification.
findViewById(R.id.button_send).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage();
}
});
}
// Send an Intent with an action named "custom-event-name". The Intent sent should
// be received by the ReceiverActivity.
private void sendMessage() {
Log.d("sender", "Broadcasting message");
Intent intent = new Intent("custom-event-name");
// You can also include some extra data.
intent.putExtra("message", "This is my message!");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}使用上面的代码,每次单击按钮R.id.button_send时,mMessageReceiver都会在ReceiverActivity中广播和接收意图。
调试输出应该如下所示:
01-16 10:35:42.413: D/sender(356): Broadcasting message
01-16 10:35:42.421: D/receiver(356): Got message: This is my message! 发布于 2012-04-26 05:18:02
我宁愿全面回答。
编辑:您可以在这里阅读完整的教程,LocalBroadcastManager:内部应用程序消息传递
发布于 2016-11-18 07:48:02
接收端的:
发送端的:
Intent intent = new Intent("filter_string");
intent.putExtra("key", "My Data");
// put your all data using put extra
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);https://stackoverflow.com/questions/8802157
复制相似问题