使用BroadcastReceiver会耗尽多少电池耗费Android服务

时间:2016-10-20 23:08:11

标签: android service broadcastreceiver battery

让我们将以下服务作为例子:

public class MyService extends Service {

    final BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {
        @Override public void onReceive(Context context, Intent intent) {
            //Do nothing
        }
    };

    @Override
    public void onCreate() {
        super.onCreate();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
        intentFilter.addAction(Intent.ACTION_SCREEN_ON);
        registerReceiver(mScreenStateReceiver, intentFilter);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mScreenStateReceiver);
    }

}

请注意,此BroadcastReceiver需要在RUNTIME注册(例如,服务或活动)。这就是我使用服务的原因

假设此服务将在设备开启的整个时间内运行,具有正常工作的BroadcastReceiver并且什么也不做,是否会耗尽电池寿命?如果它会,多少钱?由于运行服务或广播接收器,可以让它运行使Android框架耗尽更多电池吗?

我知道,我是电池生活狂人

1 个答案:

答案 0 :(得分:0)

BroadcastReciever本身不消耗太多电池。你在里面做的任务决定了多少电池耗尽。 请参阅thisthis