【发布时间】:2014-10-02 14:09:29
【问题描述】:
我将 Google 游戏服务用于排行榜。显示如下:
static public void showLeaderboard(String lid)
{
if (isLogined() == 1)
{
Log.i(TAG, "Showing leaderboard...");
Intent intent = Games.Leaderboards.getLeaderboardIntent(mClient, lid);
mApp.startActivityForResult(intent, 1);
}
}
static public int isLogined()
{
if (mClient != null && mClient.isConnected())
return 1;
return 0;
}
但是,当我使用 Google UI(操作溢出菜单图标 -> 设置 -> 退出)打开排行榜并从 Google 游戏服务注销时,我的 isLogined() == 1 一直存在。所以,当我第二次调用 showLeaderboard()时间 - 游戏异常失败:
java.lang.SecurityException: Not signed in when calling API
GoogleApiClient 有连接回调,但没有断开连接。 如何使用 google UI 处理 GGS 的唱歌?
【问题讨论】:
-
Nitpick:不要返回
0或1来表示失败或成功,而应返回boolean(无论如何,这是 Java 的做法)。 -
我们有几个平台,对于常用功能,使用
int而不是boolean(例如,objc 中没有boolean)以便于移植。 -
(只是说)。无论如何,这段代码对我来说看起来不错。您是否在物理设备上进行测试?也许应该下载一个使用 Google Play 游戏的示例项目并自己运行它......然后如果示例项目正常运行,您可以将其与您当前的项目进行比较,并尝试找出导致中断的差异。
标签: android