1. 效果图
2. 代码
1. 布局文件
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn1" > </Button> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn2" > </Button> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn3" > </Button>
main.xml
public class firstActivity extends Activity { public static final String MY_ACTION = "iflab.test.MY_ACTION"; // 自定义ACTION myReceiver receiver; // myReceiver对象 @Override public void onCreate(Bundle savedInstanceState) { // 重载onCreate方法 super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn1 = (Button) findViewById(R.id.button1); // 获取ID Button btn2 = (Button) findViewById(R.id.button2); Button btn3 = (Button) findViewById(R.id.button3); btn1.setOnClickListener(new View.OnClickListener() { // 设置监听器 @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); // Intent对象 intent.setAction(MY_ACTION); // 设置Action intent.putExtra("message", "来自于广播的消息!"); // 设置广播的消息 sendBroadcast(intent); // 发送广播 } }); btn2.setOnClickListener(new View.OnClickListener() { // 设置监听器 @Override public void onClick(View v) { // TODO Auto-generated method stub IntentFilter filter = new IntentFilter("iflab.test.MY_ACTION"); receiver = new myReceiver(); registerReceiver(receiver, filter); // 注册广播接收器 } }); btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub unregisterReceiver(receiver); // 销毁广播接收器 } }); } }
firstActivity
public class myReceiver extends BroadcastReceiver{ @Override public void onReceive(Context arg0, Intent arg1) { //重载onReceive方法 // TODO Auto-generated method stub String str; str="接收到的广播消息为:"+arg1.getStringExtra("message"); //接收消息 Toast.makeText(arg0, str,Toast.LENGTH_LONG).show(); //显示 } }
myReceiver
<receiver android:name="myReceiver" > <intent-filter> </intent-filter> </receiver>
配置文件
3. 提示
没有注册广播接收器的时候不要点击销毁广播接收器 会停止运行 也算是一个小小的BUG吧 需要的用户自己进行一些操作
时间: 2024-08-21 15:37:53