ListView

Android广播机制就是在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。

在Activity中,注册广播的一个Demo。

总共分3步

第一步:定义一个BroadcastReceiver广播接收类:
[java] view plain copy

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){  
            @Override  
            public void onReceive(Context context, Intent intent) {  
                String action = intent.getAction();  
                if(action.equals(ACTION_NAME)){  
                    Toast.makeText(Test.this, "处理action名字相对应的广播", 200);  
                }  
            }  

        };  




第二步:注册该广播:
[java] view plain copy

    public void registerBoradcastReceiver(){  
            IntentFilter myIntentFilter = new IntentFilter();  
            myIntentFilter.addAction(ACTION_NAME);  
            //注册广播        
            registerReceiver(mBroadcastReceiver, myIntentFilter);  
        }  




第三步:触发响应


[java] view plain copy

    mBtnMsgEvent = new Button(this);  
            mBtnMsgEvent.setText("发送广播");  
            mBtnMsgEvent.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    Intent mIntent = new Intent(ACTION_NAME);  
                    mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据");  

                    //发送广播  
                    sendBroadcast(mIntent);  
                }  
            });  







-----最后附上完整代码:
[java] view plain copy

    package my.yaner;  

    import android.app.Activity;  
    import android.content.BroadcastReceiver;  
    import android.content.Context;  
    import android.content.Intent;  
    import android.content.IntentFilter;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.view.View.OnClickListener;  
    import android.widget.Button;  
    import android.widget.LinearLayout;  
    import android.widget.Toast;  

    public class Test extends Activity{  
        private final String ACTION_NAME = "发送广播";  
        private Button mBtnMsgEvent = null;  

        protected void onCreate(Bundle savedInstanceState){  
            super.onCreate(savedInstanceState);  

            //注册广播  
            registerBoradcastReceiver();  

            LinearLayout mLinearLayout = new LinearLayout(this);  
            mBtnMsgEvent = new Button(this);  
            mBtnMsgEvent.setText("发送广播");  
            mLinearLayout.addView(mBtnMsgEvent);  
            setContentView(mLinearLayout);  

            mBtnMsgEvent.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    Intent mIntent = new Intent(ACTION_NAME);  
                    mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据");  

                    //发送广播  
                    sendBroadcast(mIntent);  
                }  
            });  
        }  

        private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){  
            @Override  
            public void onReceive(Context context, Intent intent) {  
                String action = intent.getAction();  
                if(action.equals(ACTION_NAME)){  
                    Toast.makeText(Test.this, "处理action名字相对应的广播", 200);  
                }  
            }  

        };  

        public void registerBoradcastReceiver(){  
            IntentFilter myIntentFilter = new IntentFilter();  
            myIntentFilter.addAction(ACTION_NAME);  
            //注册广播        
            registerReceiver(mBroadcastReceiver, myIntentFilter);  
        }  
    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值