Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 每10秒获取部分唤醒锁_Android_Coding Style_Power Management_Android Wake Lock - Fatal编程技术网

Android 每10秒获取部分唤醒锁

Android 每10秒获取部分唤醒锁,android,coding-style,power-management,android-wake-lock,Android,Coding Style,Power Management,Android Wake Lock,以10秒的间隔获取部分唤醒锁的应用程序是否存在任何问题。我的用例是能够通过设备加速计持续监控用户的移动。基本上,我有一个服务,它每10秒被一个警报调用一次 此服务获取唤醒锁,从加速计获取一些读数以确定当前移动状态,然后释放唤醒锁。服务的总生存期约为4秒 我的理解是,这会导致设备每分钟保持清醒约24秒。虽然不是很理想,但我希望这仍然比在应用程序的整个生命周期中保持一个恒定的唤醒锁更好 另一方面,在如此短的时间内获取和释放尾流锁是否可能对电池寿命同样有害 感谢您的任何意见。如评论所示,这确实不是一个

以10秒的间隔获取部分唤醒锁的应用程序是否存在任何问题。我的用例是能够通过设备加速计持续监控用户的移动。基本上,我有一个服务,它每10秒被一个警报调用一次

此服务获取唤醒锁,从加速计获取一些读数以确定当前移动状态,然后释放唤醒锁。服务的总生存期约为4秒

我的理解是,这会导致设备每分钟保持清醒约24秒。虽然不是很理想,但我希望这仍然比在应用程序的整个生命周期中保持一个恒定的唤醒锁更好

另一方面,在如此短的时间内获取和释放尾流锁是否可能对电池寿命同样有害


感谢您的任何意见。

如评论所示,这确实不是一个好主意。正如在“一星级市场评级”类型的一个不好的主意

加速计设计用于跑步活动(如游戏),仅此而已。它绝对不是为在您尝试的模式下使用而设计的

您还假设在您释放
唤醒锁后,设备将立即重新进入睡眠状态。这可能是真的,也可能不是真的。我怀疑您会发现,您正在导致CPU在40%以上的可用时间内通电,即使您只是要求CPU在40%的时间内通电


我强烈建议您查看。

您是否使用过应用程序MyTracks

上次我检查时,当用户有活动路径时,它们使用唤醒锁

我和你有同样的问题——虽然我不想使用唤醒锁,但如果操作系统在运行过程中杀死了我的应用程序,我的应用程序就完蛋了。现在我们这样做的代价是每小时大约10%的电池寿命,这并不坏。这当然不是很好,但我们的平均路径只有20分钟左右。它是有效的


使用报警管理器似乎是一种更好的方法。有没有关于如何在这种情况下使用它的好例子?

为什么需要唤醒屏幕才能访问加速计?我没有唤醒屏幕,只是唤醒CPU。我用的是部分唤醒锁。我每10秒叫醒一次设备,检查其移动情况,必要时采取措施,然后将其恢复睡眠。我只是认为您不需要为您的情况设置唤醒锁。如果您的服务在警报响起时被调用,则cpu正在处理它。您不必告诉系统您的应用程序想要使用cpu……这将对用户的电池寿命产生很大的负面影响。这一程度可能因设备而异。每10秒保持唤醒锁定4秒意味着你在40%的时间里一直保持设备处于唤醒状态。是的,但越接近0%,你的用户就会越高兴。你的应用程序利用电池电量做什么比你的用户在一天结束时有足够的电量打电话更重要吗?:)谢谢你的确认。我有一个合理的想法,就是情况会是这样。我以前在你之前的一个答案中看到过这个演示,但无论如何还是要感谢你的链接,这是一个很好的建议!我尝试实现这一点的唯一原因是实现一个GPS跟踪应用程序,该应用程序在用户不移动时停止调用GPS(以尝试节省电池,至少)。唉,很明显,这种方法很可能会使用尽可能多的电池,因为它试图节省,这是一个耻辱。再次感谢,anyway@declantraynor:记住加速度!=移动有人可能正在移动而没有加速(例如,在巡航控制的汽车中)。是的,这是我在开发这个应用程序时一直在考虑的问题。没有什么是简单的!:P我现在确信以这种方式使用加速度计是错误的方法。啊,好吧。。。回到绘图板上!