小编mih*_*mih的帖子

PhoneStateListener onSignalStrengthsChanged停止在Service中调用

我正在编写包含两个元素的简单应用程序 - 服务和活动.活动仅用于启动和停止服务.服务用于PhoneStateListener获取有关当前CellID,LAC和RSSI(信号强度)的信息并将其记录到文件中.

电话没有睡觉时一切正常.我注意到在关闭屏幕和几分钟不活动之后我PhoneStateListener不再被调用了.我尝试将PARTIAL_WAKE_LOCK(以及其他类型的锁)添加到我的服务中,但我想这会导致严重的电池耗尽,不应该以这种方式使用.另一方面,它并没有真正帮助我.我的另一个尝试是使用Timer并PhoneStateListener在指定的时间间隔内注销/注册我.出乎意料的是,看起来这种方式有助于刷新CellId和LAC(所以我猜这是onCellLocationChanged()从我的听众那里调用的),但信号强度仍未更新.

我没有尝试使用BroadcastReciever,但经过一些深入研究主题和阅读线索后,我不认为这对我有用.

总结一下,我的问题是:为什么PhoneStateListener手机睡眠时不调用方法?有没有办法(如强制电话唤醒或使用不同的机制)有效地克服这种行为?

service android

8
推荐指数
1
解决办法
2119
查看次数

标签 统计

android ×1

service ×1