从片段中调用Google Play游戏服务

Ian*_*anB 3 android android-fragments google-play-games

我已将Android应用中的一些Google Play游戏服务功能作为单独的Activity实现,我现在正尝试将我的代码重写为(Action Bar Sherlock)片段.我在我的片段中使用提供的GameHelper代码.

自动登录正常工作.用户启动登录失败,因为GameHelper中的StartResolutionForResult调用返回到Activity的onActivityResult而不是片段.我已经使用Log.D验证了所有这些.我对此的理解是有限的 - 我该怎么做才能解决这个问题?我尝试传递不同的上下文,但StartResolutionForResult似乎只接受一个Activity作为其上下文.

Bru*_*ira 8

Google Play游戏服务API应该与Activity的生命周期相关联,而不是Fragment的生命周期.如果你的游戏逻辑在Fragment中,你可以在Activity上实现onActivityResult并从那里调用你的Fragment.看看我们的Type A Number Challenge样本,它除了是一个非常令人兴奋和令人上瘾的游戏</ sarcasm>之外,还演示了如何处理Fragments.Type A Number中的每个屏幕都是一个片段,它们根据需要与Activity通信.

在这种特殊情况下,所有与游戏API的交互都是由Activity创建的.但是,你也可以让Activity将GamesClient对象交给Fragment,这样它就可以实现自己的逻辑.

在所有情况下,请记住不要GamesClient在片段中保留持久引用的时间超过您的需要.最好在需要时从Activity(通过接口)查询它.这是为了防止它在Activity的生命周期中泄漏.