博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发之使用BroadcastReceiver实时监听电量(源码分享)
阅读量:2233 次
发布时间:2019-05-09

本文共 1337 字,大约阅读时间需要 4 分钟。

    Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的。

我们能够动态注冊这个类的一个实例通过Context.registerReceiver()方法或者静态注冊,通过<Receiver>标记在androidmanifest . xml。注意:假设我们注冊一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的onPause方法中。(这将降低不必要的系统开销)。

切记不能注销Activity在onSaveInstanceState(),由于这种方法不会被启动直到用户回到历史堆栈。以下我们通过动态注冊BroadcastReceiver来实现电量的监听。

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

(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接口

public class BatteryBroadcastReciver extends 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", 0);
                //取得系统总电量
                int total=intent.getIntExtra("scale", 100);
                textView.setText("当前电量:"+(level*100)/total+"%");
                //当电量小于15%时触发
                if(level<15){
                    Toast.makeText(MainActivity.this, "当前电量已小于15%",Toast.LENGTH_LONG).show();
                }
                
            }
        }
        
    }

转载于:https://www.cnblogs.com/ljbguanli/p/6857963.html

你可能感兴趣的文章
搞懂分布式技术11:分布式session解决方案与一致性hash
查看>>
搞懂分布式技术12:分布式ID生成方案
查看>>
搞懂分布式技术13:缓存的那些事
查看>>
搞懂分布式技术14:Spring Boot使用注解集成Redis缓存
查看>>
搞懂分布式技术15:缓存更新的套路
查看>>
搞懂分布式技术16:浅谈分布式锁的几种方案
查看>>
搞懂分布式技术17:浅析分布式事务
查看>>
搞懂分布式技术18:分布式事务常用解决方案
查看>>
搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务
查看>>
搞懂分布式技术20:消息队列因何而生
查看>>
搞懂分布式技术21:浅谈分布式消息技术 Kafka
查看>>
后端技术杂谈1:搜索引擎基础倒排索引
查看>>
后端技术杂谈2:搜索引擎工作原理
查看>>
后端技术杂谈3:Lucene基础原理与实践
查看>>
后端技术杂谈4:Elasticsearch与solr入门实践
查看>>
后端技术杂谈5:云计算的前世今生
查看>>
后端技术杂谈6:白话虚拟化技术
查看>>
后端技术杂谈7:OpenStack的基石KVM
查看>>
后端技术杂谈8:OpenStack架构设计
查看>>
后端技术杂谈9:先搞懂Docker核心概念吧
查看>>