zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    PLSQL表
    CentOS服务器下JavaEE环境搭建指南(远程桌面+JDK+Tomcat+MySQL)
    数据分析业务调研
    Apache -poi
    Python入门经典
    高性能Linux服务器构建实战:运维监控、性能调优与集群应用
    新编 中文版CorelDRAW入门与提高
    早该这样学!Photoshop比你想的简单
    跟老男孩学Linux运维:MySQL入门与提高实践
    SQL查询的艺术
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4229476.html
Copyright © 2011-2022 走看看