我无法理解如何实现“结果回调”。有人可以指出我正确的方向吗?

Posted

技术标签:

【中文标题】我无法理解如何实现“结果回调”。有人可以指出我正确的方向吗?【英文标题】:I'm having trouble understanding how to implement a "Result Callback". Can someone point me in the right direction? 【发布时间】:2015-02-28 10:51:56 【问题描述】:

我正在关注 this guide on google 为 android 设置 Google Play 游戏服务。

在实现 ResultCallback 的部分它说:

在sn-p中,MatchInitiatedCallback是一个实现ResultCallback接口的类。您可以将此对象附加到 GoogleApiClient 以便在启动比赛时通知您的游戏。要了解 MatchInitiatedCallback 是如何实现的,请参阅先行一步。

public class MatchInitiatedCallback implements
    ResultCallback<TurnBasedMultiplayer.InitiateMatchResult> 

@Override
public void onResult(TurnBasedMultiplayer.InitiateMatchResult result) 
    // Check if the status code is not success.
    Status status = result.getStatus();
    if (status.isSuccess()) 
        showError(status.getStatusCode());
        return;
    

    TurnBasedMatch match = result.getMatch();

    // If this player is not the first player in this match, continue.
    if (match.getData() != null) 
        showTurnUI(match);
        return;
    

    // Otherwise, this is the first player. Initialize the game state.
    initGame(match);

    // Let the player take the first turn
    showTurnUI(match);
 

我创建了一个名为“MatchInitiatedCallback”的类,但我不知道如何处理它。我想开始一个新的意图。

    // Let the player take the first turn
    showTurnUI(match);

我尝试在 showTurnUI() 处启动一个新意图,但我猜这个 MatchInitiatedCallback 不会让我启动一个新意图,因为它没有继承自 Activity...(?)

我不太了解这些回调的东西,不知道从哪里开始,有人能指出我正确的方向吗?

【问题讨论】:

我推荐starting here。 【参考方案1】:

在 GitHub 中查看基于回合的示例:https://github.com/playgameservices/android-basic-samples/blob/master/BasicSamples/SkeletonTbmp/src/main/java/com/google/example/tbmpskeleton

回调是使用匿名类实现的,该类调用主活动上的方法。

    ResultCallback<TurnBasedMultiplayer.InitiateMatchResult> cb = new ResultCallback<TurnBasedMultiplayer.InitiateMatchResult>() 
        @Override
        public void onResult(TurnBasedMultiplayer.InitiateMatchResult result) 
            processResult(result);
        
    ;
    Games.TurnBasedMultiplayer.createMatch(mGoogleApiClient, tbmc).setResultCallback(cb);

可以在示例上下文中看到 processResult 的代码:https://github.com/playgameservices/android-basic-samples/blob/master/BasicSamples/SkeletonTbmp/src/main/java/com/google/example/tbmpskeleton/SkeletonActivity.java#L638

【讨论】:

以上是关于我无法理解如何实现“结果回调”。有人可以指出我正确的方向吗?的主要内容,如果未能解决你的问题,请参考以下文章

React.js - 从文本文件中获取字符串后,数组无法正确显示

第一次制作波表合成器......有人能指出我正确的方向吗?

如何实现水平表格视图?

无法将 Ngrok 与 Vagrant 连接

std :: shared_ptr的错误用法,有人可以帮忙指出问题所在吗?

无法理解如何使用 seekg tellg 来实现以下结果