我正在构建一个 Android 应用程序来用智能手机控制电源插座。该应用程序具有 Android Wear 应用程序,因此人们可以直接从手腕上控制灯光。
当用户想要控制一盏灯时,我通过MessageApi
智能手表向智能手机发送一个字符串动作,智能手机在 a 中接收此动作,WearableListenerService
并将适当的网络信号发送到 a 中的电源插座/网关AsyncTask
。
只要手机没有闲置太久,它就可以正常工作。但是,如果手机在桌面上停留的时间过长,并且在 Wear 中打瞌睡,动作执行的速度会非常慢,有时甚至根本不会执行。我想这部分是预期的行为,但在我的情况下这是不切实际的,因为如果用户想进入一个黑暗的房间,他不能等待他的灯打开。
我知道如果您不在打瞌睡白名单上,打瞌睡会完全切断除 FCM/GCM 之外的所有网络。但即使我的应用程序在此白名单中并且网络部分正常工作,操作也可能需要很长时间才能在手机上执行。
所以我的具体问题是:处理这种情况的推荐方法是什么,需要通过网络在处于打盹模式的连接智能手机上完成可穿戴设备的操作?
有没有办法快速退出打瞌睡以更快地执行由可穿戴伴侣应用程序触发的计算?
我知道AlarmManager
有一种新方法,即使在打瞌睡模式下也能工作,但这也能解决处理延迟问题吗?收到邮件后发出警报MessageEvent
对MessagApi
我来说似乎是一种解决方法。
或者也许是AsyncTask
处理后台网络的错误方法,而这就是延迟的来源?