• android 广播的使用


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

    总共分3步

    第一步:定义一个BroadcastReceiver广播接收类:

    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);
        }

    第三步:触发响应

    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);
                }
            });
        

    最后附上完整代码:

    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);
        }
    }
  • 相关阅读:
    设计模式学习--Abstarct Factory
    WPF使用Canvas绘制可变矩形
    离线安装 Android 4.0 SDK
    引用了System.Configuration命名空间,却找不到ConfigurationManager类
    LIBXML2库使用指南2
    Quartz任务调度实践
    FastJson 自定义Serialize、Parser
    maven安装与创建多模块项目
    Zookeeper源码调试环境踩坑记录
    Apache Dubbo时间轮HashedWheelTimer算法的实现原理
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4229476.html
Copyright © 2020-2023  润新知