我正在按照 android wear 文档将消息从一台设备发送到另一台设备(https://developer.android.com/training/wearables/data-layer/messages.html)
但我认为示例中存在一些错误,因为发送消息方法抛出 IllegalStateException 并带有以下消息:不能在 UI 线程上调用 await
我该如何解决?
我正在按照 android wear 文档将消息从一台设备发送到另一台设备(https://developer.android.com/training/wearables/data-layer/messages.html)
但我认为示例中存在一些错误,因为发送消息方法抛出 IllegalStateException 并带有以下消息:不能在 UI 线程上调用 await
我该如何解决?
而不是调用.await()
,使用.setResultCallback()
. 例如, ...
result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
Log.v(TAG, "Sent message");
}
});
你不能这样做,因为await()
阻塞了线程。
您想使用异步线程执行此操作,例如使用AsyncTask
,就像此处的Google Play 服务文档中建议的那样:https ://developer.android.com/google/auth/api-client.html#Sync
是的,应该更新文档以说明为 Wear Api 做同样的事情。