Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Wear MessageAPI-can';不能在UI线程上发送消息_Android_Multithreading_Wear Os_Android Wear Data Api - Fatal编程技术网

Android Wear MessageAPI-can';不能在UI线程上发送消息

Android Wear MessageAPI-can';不能在UI线程上发送消息,android,multithreading,wear-os,android-wear-data-api,Android,Multithreading,Wear Os,Android Wear Data Api,我正在按照android wear文档从一台设备向另一台设备发送消息() 但我认为示例中存在一些错误,因为send message方法抛出了一个非法状态异常,并显示以下消息:wait不能在UI线程上调用 如何修复它?使用.setResultCallback()而不是调用.wait()。例如 result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() { @Overrid

我正在按照android wear文档从一台设备向另一台设备发送消息()

但我认为示例中存在一些错误,因为send message方法抛出了一个非法状态异常,并显示以下消息:wait不能在UI线程上调用


如何修复它?

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

result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
            @Override
            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                Log.v(TAG, "Sent message");
            }
        });
result.setResultCallback(新的ResultCallback(){
@凌驾
public void onResult(MessageApi.SendMessageResult SendMessageResult){
Log.v(标记“已发送消息”);
}
});

您不能这样做,因为
await()
会阻塞线程

您希望使用异步线程来执行此操作,例如使用
异步任务
,如Google Play Services文档中建议的:


是的,应该对文档进行更新,以说明如何对Wear Api执行相同的操作。

谢谢,我没有想到这一点!