Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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 TurnBasedMultiplayer调用takeTurn()不会生成onTurnBasedMatchReceived()_Android_Google Play Games - Fatal编程技术网

Android TurnBasedMultiplayer调用takeTurn()不会生成onTurnBasedMatchReceived()

Android TurnBasedMultiplayer调用takeTurn()不会生成onTurnBasedMatchReceived(),android,google-play-games,Android,Google Play Games,我正在使用Google的turnbasedmultiplayerapi编写一个多人游戏,并调用takeTurn()。我在游戏中有三个玩家,除了调用takeTurn的玩家之外,我发现一个玩家收到了更新,并且正确调用了onTurnBasedMatchReceived(),而另一个玩家没有收到更新,onTurnBasedMatchReceived() 有人能给我一个可能的原因不是所有的玩家都收到更新吗?我注意到,没有收到更新的玩家需要返回比赛收件箱并再次选择相关比赛,然后可以看到游戏实际上已经更新。是

我正在使用
Google的turnbasedmultiplayerapi
编写一个多人游戏,并调用
takeTurn()
。我在游戏中有三个玩家,除了调用takeTurn的玩家之外,我发现一个玩家收到了更新,并且正确调用了
onTurnBasedMatchReceived()
,而另一个玩家没有收到更新,
onTurnBasedMatchReceived()


有人能给我一个可能的原因不是所有的玩家都收到更新吗?我注意到,没有收到更新的玩家需要返回比赛收件箱并再次选择相关比赛,然后可以看到游戏实际上已经更新。

是不是在比赛中没有完全收到更新的玩家?未接受邀请的玩家将不会接到到
onturnbasedMatchUpdate
的呼叫


此外,当玩家收到邀请时,这将转到邀请侦听器,而不是匹配更新的侦听器。如果您试图同时使用match updated listener,这也可以解释为什么您没有得到更新。

您是否激活了该listener。我在我的主要活动中使用这样的代码

公共类游戏屏幕在InvitationReceivedListener上扩展活动实现, OnTurnBasedMatchUpdateReceivedListener{ ...
}

如果您正确配置了,则当您调用
takeTurn()
并更新比赛状态时,确实应该更新游戏中的所有玩家。您能否分享一些代码,说明如何注册这些侦听器以及如何调用
takeTurn()
?这可能会对您的特定问题有所帮助。@Override public void onTurnBasedMatchReceived(TurnBasedMatch-match-match){Toast.makeText(这是“已更新的匹配)”,Toast_DELAY.show();updateMatch(match);}Games.TurnBasedMultiplayer.takeTurn(getApiClient(),mMatch.getMatchId(),mTurnData.persist()setResultCallback(new ResultCallback(){@Override public void onResult(TurnBasedMultiplayer.UpdateMatchResult result){processResult(result);}});是的,这个运动员完全参加了比赛。这不是邀请。谢谢你的提问。我怀疑这是正在使用的三星上的同步问题,但我找不到在设备上设置自动同步的位置,因此我无法验证这一点并回答我自己的问题。