我正在尝试找到一种在 Wear OS 上以可靠的方式运行网络心跳服务的方法。目标是有一个进程每 x 分钟发送一次网络请求,无论设备的状态如何(屏幕开/关、充电、关闭充电器等)。有可能实现吗?
我的方法是运行前台服务 https://developer.android.com/guide/components/foreground-services with a 部分唤醒锁 https://developer.android.com/reference/android/os/PowerManager#PARTIAL_WAKE_LOCK即每 x 分钟重新安排一个带有 postDelayed 的新 Runnable。但当手表不在充电器上时,一旦屏幕变暗,手表就会停止运行。
这是前台服务的基本实现:
public void onCreate() {
HandlerThread thread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
serviceLooper = thread.getLooper();
serviceHandler = new ServiceHandler(serviceLooper);
tick();
}
private void tick() {
submitDataViaNetwork();
scheduleNextTick();
}
private void scheduleNextTick() {
serviceHandler.postDelayed(new Runnable() {
public void run() {
tick();
}
}, 60*1000);
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)