Android学习【6】BroadcastReceiver和接口的使用

	BroadcastReceiver主要用途为消息接收,接下来以获取电池电量为例进行下描述。
	首先,创建MyPowerBR继承自BroadcastReceiver用于电池电量消息的获取。之后重写onReceive方法,在onReceive方法中过滤消息,选择出电池电量的消息。
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
            //获取当前电量,没有收到则返回0
            int level = intent.getIntExtra("level", 0);
            //电量的总刻度<span style="font-size: 9pt; font-family: 宋体;">,没有收到则返回100</span>
            int scale = intent.getIntExtra("scale", 100);
            powerInterface.updateUI(level,scale);
        }
    }
之后需要在Activity中动态注册
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //注册广播接受者
        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        //创建广播接受者对象
        MyPowerBR batteryReceiver = new MyPowerBR();
        registerReceiver(batteryReceiver, intentFilter);  //动态注册
        batteryReceiver.setPowerInterface(this);  //设置接口
    }
当然还要在Manifest文件中添加啦~~
<span style="white-space:pre">	</span><receiver android:name=".MyPowerBR"/>
此时在onReceive中已经能接收到电池的电量消息了。接下来还有一个问题:如何将接收到的消息传递至Activity中?
 我选用了接口来解决这一问题。
 MyPowerBR中创建接口PowerInterface 并定义方法updateUI;在onReceive函数中调用updateUI方法把数据写入,之后再Activity中实现这一接口即可~~~
 源文件在这里



你可能感兴趣的:(android,接口,电池电量)