android - Google Play 服务排行榜 - 分数仅在排行榜打开时发布
问题描述
我有一个带有排行榜实现的 Android 游戏。我的问题是用户看起来一切都很好,他的分数只在他打开排行榜时出现。在活动中,我在 onCreate 中调用它:
if (!isSignedIn()) {
beginUserInitiatedSignIn();
}
if (getApiClient().isConnected()) {
Games.Leaderboards.submitScore(getApiClient(), getString(R.string.leaderboard), totalScoreLong);
}
打开排行榜时:
if (!isSignedIn()) {
beginUserInitiatedSignIn();
} else {
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(getApiClient(), getString(R.string.leaderboard)), 2);
}
此外,当用户在游戏中完成一轮时,我会尝试发送更新后的分数:
if (getApiClient().isConnected()) {
Games.Leaderboards.submitScore(getApiClient(), getString(R.string.leaderboard), totalLong);
}
我究竟做错了什么?在他打开排行榜之前,我无法在排行榜中看到该用户......我猜它不应该以这种方式工作,因为我已经看到其他拥有 1000 多个用户的应用程序,而且我认为并不是每个人都查看排行榜。我在应用程序上有很多用户,所以这应该不是问题,我还用 2 台设备进行了测试,用户不可见。
解决方案
您可以尝试用 GoogleApi 而不是 GoogleApiClient 做同样的事情吗?通过这种方式,您将摆脱处理可能遇到问题的连接状态。
您还可以使用submitScoreImmediate
尝试异步加载分数并返回数据作为结果的方法。
例子:
Games.getLeaderboardsClient(ctx, signIn)
.submitScoreImmediate(id, score)
.addOnSuccessListener(
new OnSuccessListener<ScoreSubmissionData>() {
@Override
public void onSuccess(ScoreSubmissionData data) {
...
}
});
推荐阅读
- python - 为什么我的 Tkinter 按钮图像没有更新?
- python - 如何从深度相机获取世界系统中的深度坐标
- c++ - TextOut 到设备上下文的中心
- typescript - 打字稿参数相互依赖
- java - 编译器运行没有输出
- c# - Entity Framework Core 3.1.5:如何从 linq 查询中取出表集合逻辑以避免客户端评估错误?
- python - KeyError: 'pdf' 正在显示;代码以前可以工作 - 为什么?
- go - 如何在一段时间内分配间隔?
- html - 弹性孩子的 100% 宽度是如何计算的?
- angular - 如何使用 ngx-webcam 在 Angular 中录制视频