Android 系统广播动态注册

package com.broadcasttest;  
  
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.Toast;  
  
public class MainActivity extends Activity {  
  
    Button btn = null;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        btn = (Button)findViewById(R.id.sendBroadcasrt);  
        btn.setOnClickListener(new OnClickListener() {  
              
            public void onClick(View v) {  
                Intent intent = new Intent();  
                intent.setAction("dynamic_Broadcast");  
                intent.putExtra("message", "send Broadcast");  
                sendBroadcast(intent);  
            }  
        });  
          
          
        //增加过滤  
        IntentFilter intentFilter = new IntentFilter();  
        //增加过滤intent内容  
        intentFilter.addAction("dynamic_Broadcast");  
        MyBroadCast mr = new MyBroadCast();  
        //向系统注册广播接收器 和intent过滤器  
        this.registerReceiver(mr, intentFilter);  
          
    }  
      
    //创建自己的广播接收类 实现onReceive方法  
    class MyBroadCast extends BroadcastReceiver{  
  
        public void onReceive(Context context, Intent intent) {  
            StringBuilder sb = new StringBuilder();  
            sb.append(intent.getAction()).append(" ,message:").append(intent.getStringExtra("message"));  
            Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_SHORT).show();  
              
        }  
          
    }  
}  

实例intent 设置信息 发送广播。

增加IntentFilter 过滤器  过滤广播 

向系统注册广播和IntentFilter

实现自己的广播接收器类 

在对应的生命周期里注销Broadcast广播过滤器

Android 系统广播动态注册,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。