我有一个作为后台服务运行的应用程序,并且不断监听网络更新(课程位置)。服务本身不会保留任何唤醒锁定。听力部分如下所示:
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 120000, 3000F, this);
我的onLocationChanged()
方法正在做一些非常简单的事情(仅使用Location.distanceTo()
计算到预配置位置的距离:
在查看电池统计数据时,该应用程序是摇滚明星 - 有时甚至超过显示器。
CPU并不是那么糟糕,但“保持清醒”部分非常高。
有没有办法防止这种情况发生?
我想用AlarmManager
每2分钟请求一次更新,然后在我得到它之后再去睡觉,但我不确定这是一个好方法。
另外,我想要检测设备何时运动,但这很可能是一个更大的杀手。
答案 0 :(得分:0)
我想你回答了自己的问题。
我想使用AlarmManager每2分钟请求一次更新 我拿到之后再去睡觉。虽然不太确定它是好的 方法
那将是最好的方法。但是不要将其设置为两分钟,将其设置为10分钟。