Android 连续粗定位听众会吃电池吗?

Android 连续粗定位听众会吃电池吗?,android,wakelock,Android,Wakelock,我想创建一个Android应用程序,根据用户位置更新报警(使用AlarmManager)。当用户移动100英里时,警报将被重新安排。此应用程序类似于调度程序应用程序 为了解决这个问题,我创建了一个永远不会被删除的位置侦听器。我的问题是: 它会吃掉我的电池吗?我需要警报与当前用户位置同步 我是否必须将应用程序始终设置为唤醒模式(唤醒锁定) 如果我的解决方案不好,你有什么建议 非常感谢你 它会吃掉我的电池吗?我需要警报与当前用户位置同步 是的,并且不能保证您的应用程序会及时收到位置更新(例如,如果设

我想创建一个Android应用程序,根据用户位置更新报警(使用AlarmManager)。当用户移动100英里时,警报将被重新安排。此应用程序类似于调度程序应用程序

为了解决这个问题,我创建了一个永远不会被删除的位置侦听器。我的问题是:

  • 它会吃掉我的电池吗?我需要警报与当前用户位置同步
  • 我是否必须将应用程序始终设置为唤醒模式(唤醒锁定)
  • 如果我的解决方案不好,你有什么建议
  • 非常感谢你

    它会吃掉我的电池吗?我需要警报与当前用户位置同步

    是的,并且不能保证您的应用程序会及时收到位置更新(例如,如果设备处于睡眠状态)

    我是否必须将应用程序始终设置为唤醒模式(唤醒锁定)

    按住WakeLock有助于保持应用程序运行,但会很快耗尽电池电量,特别是当你跟踪数百英里以外的用户时

    如果我的解决方案不好,你有什么建议


    请考虑使用ARMARM管理器定期检查设备位置。每15-30分钟处理一次警报将比使用全职位置监听器使用更少的电池电量。您可以在每次触发报警时注册和取消注册位置侦听器。只要应用程序在处理每个警报时获得一个
    唤醒锁
    (然后立即释放锁),应用程序将定期接收位置更新,并且不会耗尽电池电量。您可能希望将其视为处理警报和唤醒锁的解决方案。

    [Google I/O 2009-生命编码-电池寿命,即][1][哪些因素可以减少(Android)电池时间?][1][1]:我认为您可以在RequestLocationUpdate中指定minTime和MindDistance。因此,即使是监听粗略的位置更新也会比使用Alarm Manager更快地消耗我的电池。好的,我明白了。谢谢那么被动的供应商呢?我可以为该提供商使用全时位置监听器吗?使用
    无源\u提供商
    比其对应提供商的电池消耗更少,但无法保证位置的准确性。如果没有其他应用或服务请求位置更新,则您可能正在使用过时的位置数据。IMO称,使用WakefulIntentService处理WakeLocks和警报是最可靠(且电池效率最高)的解决方案。