限制 Google 玩游戏 API 通话
Limiting Google Play Games API Calls
在我的游戏中,我使用 Google 玩游戏来获得成就和排行榜。
我刚刚注意到(通过登录 Google API 控制台),执行一个简单的操作(例如显示排行榜)会导致 2 个 API 调用。我还以为这只会是 1.
我只是这样称呼排行榜:
public void displayLeaderBoard(){
if (getGameHelper().isSignedIn()){
if (leaderboardIntent==null){
leaderboardIntent = Games.Leaderboards.getLeaderboardIntent(getApiClient(), leaderboardID);
}
startActivityForResult(myLeaderboard, 1);
}
}
请注意,即使第二次按下排行榜按钮,它仍然是 2 API 次调用(因此不会创建新的 'leaderboardIntent')。
此外,在提交高分时,它使用 3 个 API 调用(一个用于提交,然后再次调用 displayLeaderboard() 以显示玩家 her/his 新的高分。
这里的问题是,如果我随后退出应用程序并再次提交分数,它会使用另外 3 个 API 调用。文档指出:
Both the Android and iOS client libraries will know not to send a
player's score to the server if your score isn't as good as one you
recently submitted.
我知道我可以简单地将高分的副本存储在 sharedPreferences 中,如果它不够高则不提交它,但我不确定这一点 - 例如,如果设备设置了多个帐户怎么办.
如果有更多 knowledge/experience Play 游戏 API 的人可以确认我看到的 API 来电数量是否正确以及这与引用上面的内容,或者我的代码中是否应该做更多的事情?
在我的游戏中,我使用 Google 玩游戏来获得成就和排行榜。
我刚刚注意到(通过登录 Google API 控制台),执行一个简单的操作(例如显示排行榜)会导致 2 个 API 调用。我还以为这只会是 1.
我只是这样称呼排行榜:
public void displayLeaderBoard(){
if (getGameHelper().isSignedIn()){
if (leaderboardIntent==null){
leaderboardIntent = Games.Leaderboards.getLeaderboardIntent(getApiClient(), leaderboardID);
}
startActivityForResult(myLeaderboard, 1);
}
}
请注意,即使第二次按下排行榜按钮,它仍然是 2 API 次调用(因此不会创建新的 'leaderboardIntent')。
此外,在提交高分时,它使用 3 个 API 调用(一个用于提交,然后再次调用 displayLeaderboard() 以显示玩家 her/his 新的高分。
这里的问题是,如果我随后退出应用程序并再次提交分数,它会使用另外 3 个 API 调用。文档指出:
Both the Android and iOS client libraries will know not to send a player's score to the server if your score isn't as good as one you recently submitted.
我知道我可以简单地将高分的副本存储在 sharedPreferences 中,如果它不够高则不提交它,但我不确定这一点 - 例如,如果设备设置了多个帐户怎么办.
如果有更多 knowledge/experience Play 游戏 API 的人可以确认我看到的 API 来电数量是否正确以及这与引用上面的内容,或者我的代码中是否应该做更多的事情?