通过BroadcastReceiver实现监听电池电量
2016-01-07 19:59
267 查看
Broadcast是一种在应用程序之间进行传输信息的机制。BroadcastReceiver对发送出来的Broadcast进行过滤并响应。广播Intent的发送是通过Context.sentBroadcast(),Context.sentOrderedBroadcast()或者Context.sendStickyBroadcast()方法来实现。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收。
广播接收器只有一个回调方法,即void onReceive( Context context,Intent intent)方法,当广播消息抵达接收器时系统将调用onReceive()方法并且把包括消息的Intent对象传递给他。广播接收器只有在执行这个方法的时候才处于活跃状态,当该方法执行完毕后,广播接收器处于失活状态。
广播接收器只有一个回调方法,即void onReceive( Context context,Intent intent)方法,当广播消息抵达接收器时系统将调用onReceive()方法并且把包括消息的Intent对象传递给他。广播接收器只有在执行这个方法的时候才处于活跃状态,当该方法执行完毕后,广播接收器处于失活状态。
package com.example.android_04_demo; 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.widget.TextView; public class MainActivity extends Activity { private TextView batteryTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); batteryTextView = (TextView) findViewById(R.id.text); } @Override protected void onResume() { // TODO Auto-generated method stub//注册广播监听器 super.onResume(); registerReceiver(batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } @Override protected void onPause() { // TODO Auto-generated method stub注销广播监听器 super.onPause(); unregisterReceiver(batteryInfoReceiver); } private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() { @Override接收广播 public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { int level = intent.getIntExtra("level", 0); int scale = intent.getIntExtra("scale",100); batteryTextView.setText("电量:"+String.valueOf(level*100/scale)+"%"); } } }; }
相关文章推荐
- bzoj 1208(splay 加删除)
- POJ-2081 Recaman's Sequence
- Add Binary leetcode
- Struts中Ognl语法注意事项
- Thrift框架学习整理
- POJ-2081 Terrible Sets(暴力,单调栈)
- 堆和栈
- POJ-2081 Terrible Sets(暴力,单调栈)
- css3-多列
- 读取年份数组中的所有周六周天
- 质数因子
- 如何将一块物理网卡分配给一台VMWare虚拟机(VMWare ESXi 5.0)
- TLD for android 移植问题
- USRP配置与测试
- SQL Server中开发常用的数据类型
- Java开发淘宝订单系统
- Ubuntu sudo的使用
- reason: '*** Collection <__NSCFArray: 0x7ffa43528f70> was mutated while being enumerated.'
- java基础-常用类(API)
- POJ-2181 Jumping Cows(贪心)