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);
        }
    }
  • 相关阅读:
    2020牛客暑期多校训练营(第一场)I 1or 2题解
    5-23ACM训练题解(NWERC 2019)
    5-20ACM训练题解(2017-2018 ACM-ICPC Pacific Northwest Regional Contest)
    5-6ACM训练题解(2019 Russia Team Open Contest)
    5-2ACM训练题解(Asia Nakhon Pathom Regional Contest)
    4-30ACM训练题解(ICPC Asia Taipei-Hsinchu Contest)
    4-22ACM训练题解(ZOJ Monthly Jan 2019)
    「学习笔记」子序列自动机
    「学习笔记」后缀自动机
    「学习笔记」后缀数组
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4229476.html
Copyright © 2011-2022 走看看