Android:动态注册BroadcastReceiver

来源:互联网 发布:政府集中采购流程 知乎 编辑:程序博客网 时间:2024/06/10 01:45

注释直接写在代码里,比较直观,我觉得这些定义系统的广播的宏,不是很好使;

MainActivity.java:

package com.vrinux.broadcastdemo;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.util.Log;import android.widget.Toast;public class MainActivity extends Activity {    //定义一个过滤器;    private IntentFilter intentFilter;    //定义一个广播监听器;    private NetChangReceiver netChangReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.fragment_main);        //实例化过滤器;        intentFilter = new IntentFilter();        //添加过滤的Action值;        intentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);        //实例化广播监听器;        netChangReceiver = new NetChangReceiver();        //将广播监听器和过滤器注册在一起;        registerReceiver(netChangReceiver, intentFilter);    }    @Override    protected void onDestroy() {        // TODO Auto-generated method stub        super.onDestroy();        //销毁Activity时取消注册广播监听器;        unregisterReceiver(netChangReceiver);    }    //创建一个继承BroadcastReceiver的广播监听器;    class NetChangReceiver extends BroadcastReceiver {        //重写onReceive方法,该方法的实体为,接收到广播后的执行代码;        @Override        public void onReceive(Context context, Intent intent) {            // TODO Auto-generated method stub            Log.i("MainActivity", "飞行模式启动~");            Toast.makeText(MainActivity.this, "飞行模式启动~", Toast.LENGTH_SHORT)                    .show();        }    }}
0 0
原创粉丝点击