Android Wear MessageAPI - 无法在UI线程上发送消息

时间:2014-10-23 16:52:46

标签: android multithreading wear-os android-wear-data-api

我按照android服装文档将消息从一个设备发送到另一个设备(https://developer.android.com/training/wearables/data-layer/messages.html

但我认为示例中有一些错误,因为send消息方法抛出IllegalStateException并带有以下消息: await不能在UI线程上调用

我该如何解决?

2 个答案:

答案 0 :(得分:5)

使用.await()而不是调用.setResultCallback()。例如,......

result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
            @Override
            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                Log.v(TAG, "Sent message");
            }
        });

答案 1 :(得分:1)

你不能这样做,因为await()阻止线程。

您希望使用异步线程执行此操作,例如使用AsyncTask,如 Google Play服务文档中所述:https://developer.android.com/google/auth/api-client.html#Sync

是的,文档应该更新,以便为Wear Api做同样的事情。