2013-03-15 49 views
-3

我有简单的广播监听ON_CHANGE事件,所以我的主要问题是,为什么我的手机有时1%,但2%,3%或4%跳下来不?的onReceive电池(如何跟踪每1%)

它有时感觉就像手机睡觉,不能接收意向,但过一段时间后,又回来从睡眠,并得到不1%,但4% 编辑

/* Broadcast Receiver for battery stats            */ 
      IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 


      batteryLevelReceiver = new BroadcastReceiver(){ 
       @Override 
       public void onReceive(Context context, Intent intent){ 
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
        int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
        int isCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 

...... 

    registerReceiver(batteryLevelReceiver, batteryLevelFilter); 
+1

发表您的registerReceiver()和相关代码以及您的broadcastReceiver。 – TronicZomB 2013-03-15 20:01:34

+1

正如艾哈迈德说,看起来不错,在我看来... – TronicZomB 2013-03-15 20:40:15

+0

是啊:)在我看来也是:) – whiteLT 2013-03-15 20:42:02

回答

2

所以我主要问题是为什么我的手机有时跳不下1%,但是 降低2%,3%或4%?

这是不应该发生的。通常在电池电量耗尽1%(或电池状态总体变化)后,广播将会启动。但有一个例外。在某些摩托罗拉设备上,ACTION_BATTERY_CHANGED只会每10%启动一次。对于一个广播接收器的实例,聆听ACTION_BATTERY_CHANGED请参阅this answer我放了一段时间。

但过一段时间后,又回来从睡眠,并得到不1%,但4%

的广播接收器并没有唤醒你的手机,所以这是不寻常:)

+0

所以也许它只是我的三星口袋? :) – whiteLT 2013-03-15 20:20:43

+0

AFAIK 10%的东西只出现在一些摩托罗拉设备上。您的编辑代码也看起来不错 – Ahmad 2013-03-15 20:24:06

+0

嗯...然后我的想法不存在 – whiteLT 2013-03-15 20:25:30