Android自定义发送本地广播

来源:互联网 发布:国外大学网络课程证书 编辑:程序博客网 时间:2024/05/14 05:40
以前发送和接收广播(有序,无序)都属于系统全局广播,发送的广播其他任何程序都能接收到。

android中本地广播机制,只能在程序内部进行传递。

//发送本地广播

private LocalBroadcastManager localBroadcastManager=LocalBroadcastManager.getInstance(this);

Intent intent=new Intent("com.example.broadcast.LOCAL_BROADCAST");
localBroadcastManager.sendBroadcast(intent);

我写了一个简单例子

核心代码如下

public class MainActivity extends Activity {
private Button btn_sentbroadcast;
    
private IntentFilter intentFilter;
private LocalReceiver localReceiver;//自己定义的广播接收者
private LocalBroadcastManager localBroadcastManager;//本地广播管理者


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



localBroadcastManager=LocalBroadcastManager.getInstance(this);
btn_sentbroadcast=(Button) findViewById(R.id.send_broadcast);
btn_sentbroadcast.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent=new Intent("com.example.broadcast.LOCAL_BROADCAST");
localBroadcastManager.sendBroadcast(intent);//发送本地广播


}
});
//注册广播接收者(监听器)
intentFilter=new IntentFilter();
intentFilter.addAction("com.example.broadcast.LOCAL_BROADCAST");
localReceiver=new LocalReceiver();
localBroadcastManager.registerReceiver(localReceiver, intentFilter);


}
@Override
protected void onDestroy() {

super.onDestroy();
localBroadcastManager.unregisterReceiver(localReceiver);
}


class LocalReceiver extends BroadcastReceiver{


@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "接收到本地广播", 5).show();
}

}

}

如果没有看懂请下载我的例子

http://download.csdn.net/detail/zhaihaohao1/8273593






0 0
原创粉丝点击