Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的。我们可以动态注册这个类的一个实例通过 Context.registerReceiver()方法或者静态注册,通过<Receiver>标记在androidmanifest . xml。注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的 onPause方法中。(这将减少不必要的系统开销)。切记不能注销Activity在onSaveInstanceState(),因为这个方法不会被 启动直到用户回到历史堆栈。下面我们通过动态注册BroadcastReceiver来实现电量的监听。

(1)在清单文件添加权限

  1. <uses-permission android:name="android.permission.BATTERY_STATS"/>

(2)在Activity生命周期注册注销Receiver

  1. @Override
  2. protected void onResume() {
  3. // TODO Auto-generated method stub
  4. super.onResume();
  5. reciver=new BatteryBroadcastReciver();
  6. //创建一个过滤器
  7. IntentFilter intentFilter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
  8. registerReceiver(reciver, intentFilter);
  9. }
  10.  
  11. @Override
  12. protected void onPause() {
  13. // TODO Auto-generated method stub
  14. super.onPause();
  15. unregisterReceiver(reciver);
  16. }

(3)继承BroadcastReceiver接口

  1. @Override
  2. public void onReceive(Context context, Intent intent) {
  3. // TODO Auto-generated method stub
  4. if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
  5. //得到系统当前电量
  6. int level=intent.getIntExtra("level", );
  7. //取得系统总电量
  8. int total=intent.getIntExtra("scale", );
  9. textView.setText("当前电量:"+(level*)/total+"%");
  10. //当电量小于15%时触发
  11. if(level<){
  12. Toast.makeText(MainActivity.this, "当前电量已小于15%",Toast.LENGTH_LONG).show();
  13. }
  14.  
  15. }
  16. }
  17.  
  18. }

Android BroadcastReceiver实时监听电量的更多相关文章

  1. BroadcastReceiver监听电量变化

    用BroadcastReceiver监听电量的变化,可以实现BroadcastReceiver接收电量变化的广播,然后获取电量百分比信息. BatteryChangedReceiver.java pu ...

  2. Android实时监听网络状态

    Android实时监听网络状态(1)   其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就 ...

  3. Android几行代码实现实时监听微信聊天

    实现效果: 实时监听当前聊天页面的最新一条消息,如图:            实现原理: 同样是利用AccessibilityService辅助服务,关于这个服务类还不了解的同学可以先看下我上一篇关于 ...

  4. Android实现网络监听

    一.Android Wifi常用广播 网络开发中主体会使用到的action: ConnectivityManager.CONNECTIVITY_ACTION WifiManager.WIFI_STAT ...

  5. 移动端用js与jquery实时监听输入框值的改动

    背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android ...

  6. Android应用如何监听自己是否被卸载及卸载反馈功能的实现

    一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...

  7. Android EditText内容监听

    监听 EditText的内容变化,作出对应的处理. MainActivity.class package com.example.edittextdemo; import android.app.Ac ...

  8. Android手机上监听短信的两种方式

    Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...

  9. js 实时监听input中值变化

    注意:用到了jquery需要引入jquery.min.js. 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60. 注意:需要判断null.&quo ...

随机推荐

  1. asp.net 间传值的方法

    1.页面间使用post请求时,可以使用Request.Form["xxx"] 2.QueryString 3.Context上下文传值,使用在Server.Transfer中,这个 ...

  2. 用hoverclock插件实现HTML5时钟

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  3. CSS3 filter10种特效整理

    -webkit-filter是css3的一个属性,Webkit率先支持了这几个功能,感觉效果很不错.一共有10种最基本的特效,下来这个DEMO很好的展示了这些效果: <!DOCTYPE html ...

  4. 在FreeBSD上搭建Mac的文件及time machine备份服务

    上周将工作用电脑由公司配备的台式机切换到自己低配的macbook air上面,小本本的128G SSD远远不能满足工作的储存需要,但又不舍得入手昂贵的AirPort Time Capsule,于是考虑 ...

  5. CSS3图片旋转特效

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  6. Eclipse的python插件安装

    网上找了一些资料都没有成功~~然后自己装的过程中编辑记录了一些 当然博客园里也有人用这一种方法也可以参考IBM中的 http://www.cnblogs.com/visec479/p/4139882. ...

  7. android 常用selector 颜色搭配(按钮、显示圆角等)

    作为开发者,我们时常会遇到UI常用色调搭配不协调的情况,UI也只有一个白板原型图,这时我们有一套自己常用的好看的selector会很快调出自己想要的风格. 下面是我常用的一些色调,仅供大家参考: 蓝色 ...

  8. 【Search a 2D Matrix】cpp

    题目: Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the f ...

  9. Leetcode#127 Word Ladder

    原题地址 BFS Word Ladder II的简化版(参见这篇文章) 由于只需要计算步数,所以简单许多. 代码: int ladderLength(string start, string end, ...

  10. 疑难杂症rendering(对角线上的线)

    postprocess全屏特效 对角线有条线 明显和buffer有关因为线由小的东西组成 就像之前没清空buffer产生的马赛克 beginscene时 clearmask 设0 ---------- ...