当我解锁成就时,“成就已解锁”弹出窗口不会弹出,但成就已解锁,正如我在成就列表中看到的那样。
我已经尝试过了this https://stackoverflow.com/a/26474719/2543285解决方案,但它不起作用。
我在 MainActivity 中像这样初始化 GoogleApiClient:
gac = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
app.setGoogleApiClient(gac);
gac.connect();
在我的“游戏结束活动”中,我执行以下操作:
ApplicationClass app = (ApplicationClass) getApplication();
googleApiClient = app.getGoogleApiClient();
...我解锁了这样的成就:
Games.Achievements.unlock(googleApiClient, "achievement id");
提前致谢!
游戏 API 是为单个 Activity 设计的,尽管您可以在多个 Activity 中使用它。您有机会查看他们提供的样品吗Github 页面 https://github.com/playgameservices/android-basic-samples?他们在 BasicSamples/libraries/BaseGameUtils 下有一些可能有用的类。
您正在主要活动上调用 Builder 方法this
.
new GoogleApiClient.Builder(this) //this being your MainActivity
然后,您将 Api 客户端设置为应用程序类。现在,当你进入新的环境时GameOverActivity
,API 客户端正在尝试显示屏幕上不再存在的 Activity 的视图。它仅引用您的 MainActivity。您不应在 Api 客户端的应用程序类上设置变量。这也是一种不好的做法,因为您将侦听器回调设置为活动,并且在调用其中一个回调时可能不再存在。
您想要与 Games API 交互的任何活动都应该源自BaseGameActivity
发现于BaseGameUtils
在 GitHub 上。在每个活动中,您都会有一个名为的方法getApiClient()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)