是否可以在 Wear OS 中永久可靠地运行网络 ping 服务?

2024-01-28

我正在尝试找到一种在 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(使用前将#替换为@)

是否可以在 Wear OS 中永久可靠地运行网络 ping 服务? 的相关文章

随机推荐