我在设备A中运行whatsapp(我们可以从现在开始称它为appX).我去管理应用程序 - >强制关闭以便appX关闭,我不再将appX视为正在运行的服务.
现在,5分钟后,我从另一台设备的appX(设备B)发送一条消息到设备A appX(我们杀了它的那个).以下是我测试的两个场景:
设备A与Android 2.1:它永远不会收到消息,因此我们可以说没有任何appX服务重新启动.如果手动用户重新启动应用程序,它仅接收消息.
设备A与android 2.3.6:出于一些神奇的原因,无论自appX被杀多久以来,只要我们从设备B发送消息 - >设备A获取消息,因此,appX的服务重新启动.注意:在关闭appX并且没有收到任何通知的情况下,我无法在管理应用程序中看到appX的任何正在运行的服务,因此这意味着一旦收到消息/通知,这个魔术服务就会重新启动
我知道这听起来很奇怪,很多人会说这是不可能的,但同样,这已经在这两款设备上进行了测试.
我试图完成同样的行为,所以任何帮助将不胜感激.
当标志设置为true时,我的应用程序始终运行后台服务.如果是这种情况,即使应用程序关闭,此后台服务仍需要CPU时间.如果我获得唤醒锁(不是用于"屏幕开启"目的而是用于此后台服务)然后应用程序崩溃或用户FC它,那么我无法释放此唤醒锁.
预期结果是什么?
Android知道这个并发布唤醒锁吗?
我应该以什么方式管理这种情况?
当布尔标志设置为true时,我的应用程序请求在后台服务中进行更新.如果flag设置为true,那么我获取一个PARTIAL_WAKE_LOCK让我的后台服务运行.我的问题是:
因为我从位置管理器请求更新(我不手动请求更新但订阅locationManager.requestLocationUpdates)...即使设备进入睡眠状态,locationManager是否仍然正常/正常工作PARTIAL_WAKE_LOCK?
我读过有一个WifiLock -> WIFI_MODE_SCAN_ONLY我没有收购的.由于位置管理器使用wifi扫描通过wifi热点检测位置,我也应该获得这个吗?
设备进入睡眠状态时gps位置更新怎么样?
android ×3
wakelock ×2
background ×1
crash ×1
kill-process ×1
process ×1
service ×1
sleep ×1
whatsapp ×1