在我的游戏中,我使用Google Play游戏获得成就和排行榜。
我刚刚注意到(通过登录Google API控制台),执行简单操作(如显示排行榜)会产生2个API调用。我原以为这只会是1。
我只是简单地调用排行榜:
public void displayLeaderBoard(){
if (getGameHelper().isSignedIn()){
if (leaderboardIntent==null){
leaderboardIntent = Games.Leaderboards.getLeaderboardIntent(getApiClient(), leaderboardID);
}
startActivityForResult(myLeaderboard, 1);
}
}
请注意,即使第二次按下leadeboard按钮,它仍然是2个API调用(因此不会创建新的' leaderboardIntent')。
此外,在提交高分时,它会使用3个API调用(一个用于提交,然后再调用displayLeaderboard()以向玩家显示她/他的新高分。
这里的问题是,如果我然后退回到应用程序并再次提交分数,它将使用另外3个API调用。文档说明:
Android和iOS客户端库都知道不发送 如果您的分数与您的分数不同,则该分数将获得该分数 最近提交了。
我知道我可以简单地在sharedPreferences中存储高分的副本,如果它不够高,则不提交,但我不确定 - 如果设备有多个帐户怎么办?例如设置。
如果有更多Play Games API知识/经验的人可以确认我看到的API调用的数量是否正确以及这与上面的引用有何关联,或者是否还有其他内容,我将不胜感激应该在我的代码中做什么?