谷歌官方建议笔记——电量

原文

  • 应该在做省电优化时首先检查电量状态,使用
    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    Intent batteryStatus = context.registerReceiver(null, ifilter);

    直接获取状态,关于sticky broadcast
  • 一直监控电量是矫枉过正的
    <receiver android:name=".BatteryLevelReceiver">
    <intent-filter>
    <action android:name="android.intent.action.ACTION_BATTERY_LOW"/>
    <action android:name="android.intent.action.ACTION_BATTERY_OKAY"/>
    </intent-filter>
    </receiver>
    这种监听比较合理
  • 使用ConnectivityManager监听网络情况,对于网络不好的情况,不进行下载或者刷新数据的操作
  • 动态改变Manifest中Receiver的状态,以减少Receiver个数:
    ComponentName receiver = new ComponentName(context, myReceiver.class);
    PackageManager pm = context.getPackageManager();
    pm.setComponentEnabledSetting(receiver,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP)
  • 集合后台工作,统一执行,减少设备唤醒次数,延长设备深睡时间。使用不准确定时器,包括AlarmManager.setWindow, AlarmManager.setInexactRepeating, SyncAdapter, JobScheduler等
  • LocationManager设置的interval不一定生效,全局使用所有interval中最短的一个。可以设置fastestInterval,减少回调

你可能感兴趣的:(谷歌官方建议笔记——电量)