Android Wear PendingResult onResult回调未被调用

时间:2015-11-21 18:51:07

标签: android wear-os

在sendMessage之后,我得到一个PendingResult并设置onResult回调。这种回调永远不会发生。

PendingResult<MessageApi.SendMessageResult> messageResult = Wearable.MessageApi
            .sendMessage(googleApiClient, senderNodeId, NOTE_REPLY_PATH,
                         replyMessage.getBytes());

    if (messageResult.isCanceled())
        Log.d(TAG, "result cancelled!");

    messageResult.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>()
    {
        @Override
        public void onResult(MessageApi.SendMessageResult sendMessageResult)
        {
            replyStatus = sendMessageResult.getStatus();

            runOnUiThread(new Runnable()
            {
                @Override
                public void run()
                {
                    Log.d(TAG, "confirm result");
                    confirm(replyStatus.getStatusCode() == WearableStatusCodes.SUCCESS);
                }
            });
        }

isCancelled并非如此。我尝试了awat()但是这不能在UI线程上调用(这是)。它是扰乱你必须在调用sendMessage后设置回调(如果它已经由该点发送了那么)。但这是文档想要它的方式。

基本上我的“确认结果”从未发生过。

任何想法为什么?感谢

编辑:

有时候我没有连接到任何节点。这可能就是原因。那么如果它不能调用回调,那么这个界面如何传达呢?这个sendmessage界面设计很差。相反,它应该像

status = sendMessage(callback,other args);

因为没有办法告诉你回调不会发生。

0 个答案:

没有答案