Android BroadcastReceiver实时监听电量
Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的。我们可以动态注册这个类的一个实例通过 Context.registerReceiver()方法或者静态注册,通过<Receiver>标记在androidmanifest . xml。注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的 onPause方法中。(这将减少不必要的系统开销)。切记不能注销Activity在onSaveInstanceState(),因为这个方法不会被 启动直到用户回到历史堆栈。下面我们通过动态注册BroadcastReceiver来实现电量的监听。
(1)在清单文件添加权限
<uses-permission android:name="android.permission.BATTERY_STATS"/>
(2)在Activity生命周期注册注销Receiver
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
reciver=new BatteryBroadcastReciver();
//创建一个过滤器
IntentFilter intentFilter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(reciver, intentFilter);
} @Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(reciver);
}
(3)继承BroadcastReceiver接口
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
//得到系统当前电量
int level=intent.getIntExtra("level", );
//取得系统总电量
int total=intent.getIntExtra("scale", );
textView.setText("当前电量:"+(level*)/total+"%");
//当电量小于15%时触发
if(level<){
Toast.makeText(MainActivity.this, "当前电量已小于15%",Toast.LENGTH_LONG).show();
} }
} }
Android BroadcastReceiver实时监听电量的更多相关文章
- BroadcastReceiver监听电量变化
用BroadcastReceiver监听电量的变化,可以实现BroadcastReceiver接收电量变化的广播,然后获取电量百分比信息. BatteryChangedReceiver.java pu ...
- Android实时监听网络状态
Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就 ...
- Android几行代码实现实时监听微信聊天
实现效果: 实时监听当前聊天页面的最新一条消息,如图: 实现原理: 同样是利用AccessibilityService辅助服务,关于这个服务类还不了解的同学可以先看下我上一篇关于 ...
- Android实现网络监听
一.Android Wifi常用广播 网络开发中主体会使用到的action: ConnectivityManager.CONNECTIVITY_ACTION WifiManager.WIFI_STAT ...
- 移动端用js与jquery实时监听输入框值的改动
背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android ...
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...
- Android EditText内容监听
监听 EditText的内容变化,作出对应的处理. MainActivity.class package com.example.edittextdemo; import android.app.Ac ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- js 实时监听input中值变化
注意:用到了jquery需要引入jquery.min.js. 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60. 注意:需要判断null.&quo ...
随机推荐
- Session invalidate
会清空所有已定义的session 而不是清空全部session的值也就是说 定义了一个名为 user 的session 调用invalidate()方法后使用Session.getValue(“use ...
- svg绘制蓝色星空,月亮,旋转灯塔
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- [转载]解决zabbix在configure时候遇到的问题(Ubuntu)
http://hi.baidu.com/ryq1xiuluo/item/6d37e658f1b90b13db16351d ./configure --enable-server --enable-ag ...
- kernel nf_conntrack: table full, dropping packet[转载]
http://blog.yorkgu.me/2012/02/09/kernel-nf_conntrack-table-full-dropping-packet/ 综合:ip_conntrack就是li ...
- 或许你不知道:ArrayList
ArrayList 底层以一个transient 线性数组来存储数据,它提供了无参构造方法,和有参构造方法,用户可以通过有参构造方法来初始化长度.如果不传参数,则默认调用无参构造器,数组默认长度为10 ...
- UVALive - 6577 Binary Tree 递推+找规律
题目链接: http://acm.hust.edu.cn/vjudge/problem/48421 Binary Tree Time Limit: 3000MS 问题描述 Binary Tree is ...
- HDU1048The Hardest Problem Ever
The Hardest Problem Ever Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- sql Server2005 master损坏处理
一.准备条件 a) 假设Master 数据库Hung:关闭SQL Server 服务(关闭MSSQLSERVER,SQL Server Agent其他的没有影响),然后剪切C:/Pro ...
- poj 2348
Euclid's Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7418 Accepted: 3022 Des ...
- POJ 2007 Scrambled Polygon (简单极角排序)
题目链接 题意 : 对输入的点极角排序 思路 : 极角排序方法 #include <iostream> #include <cmath> #include <stdio. ...