码迷,mamicode.com
首页 > 移动开发 > 详细

Android -- 简单广播接收与发送(2)--动态注册广播接收器

时间:2014-12-14 14:27:03      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:des   android   style   blog   http   io   ar   color   os   

1. 效果图

bubuko.com,布布扣

 

2. 代码

  1. 布局文件

bubuko.com,布布扣
 <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
bubuko.com,布布扣
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
bubuko.com,布布扣
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
bubuko.com,布布扣
  <receiver android:name="myReceiver" >
            <intent-filter>
            </intent-filter>
        </receiver>
配置文件

 

3. 提示

  没有注册广播接收器的时候不要点击销毁广播接收器   会停止运行  也算是一个小小的BUG吧  需要的用户自己进行一些操作

Android -- 简单广播接收与发送(2)--动态注册广播接收器

标签:des   android   style   blog   http   io   ar   color   os   

原文地址:http://www.cnblogs.com/SM-t/p/4162464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!