在活动之间坚持 Google Play 服务登录
Persist Google Play Services login between activities
我认为这很简单,但我一直在兜圈子试图弄清楚如何让用户在 Activities
之间保持登录状态。
我有一个"Main"和一个"Details"Activity
。用户在 "Main" Activity
中登录 Google Play Services
,我想在 "Details" Activity
.
中提交成就和排行榜数据
我在 Activities
和使用中继承自 BaseGameActivity
:
mGoogleApiClient = getApiClient();
在 "Details" 中,但是当我调用 isConnected
时它总是 returns false
.
我什至尝试从 "Main" Activity
复制所有 login/callback 代码,但它仍然没有检测到用户已登录。
这个 post 建议不要使用 BaseGameActivity
并使用 singleton
:
传递 GameHelper
How to use BaseGameActivity.getApiClient() in multiple activities?
不确定正确的方法是什么。
最简单的方法是让两个活动都创建一个单独的 api 客户端实例。连接状态在它们内部共享,因此您无需担心如何传递客户端和处理 activity 未激活时可能发生的回调,玩家只会登录你的主要 activity.
确实不再需要从 BaseGameActivity 扩展您的 activity(观看有趣的解释:Death of BasegameActivity)。您需要做的是实现处理初始化 GoogleAPIClient 的两个接口:
public class MainActivity extends Activity implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
}
要实现这些,请参阅示例和文档:https://developers.google.com/games/services/android/init
我认为这很简单,但我一直在兜圈子试图弄清楚如何让用户在 Activities
之间保持登录状态。
我有一个"Main"和一个"Details"Activity
。用户在 "Main" Activity
中登录 Google Play Services
,我想在 "Details" Activity
.
我在 Activities
和使用中继承自 BaseGameActivity
:
mGoogleApiClient = getApiClient();
在 "Details" 中,但是当我调用 isConnected
时它总是 returns false
.
我什至尝试从 "Main" Activity
复制所有 login/callback 代码,但它仍然没有检测到用户已登录。
这个 post 建议不要使用 BaseGameActivity
并使用 singleton
:
GameHelper
How to use BaseGameActivity.getApiClient() in multiple activities?
不确定正确的方法是什么。
最简单的方法是让两个活动都创建一个单独的 api 客户端实例。连接状态在它们内部共享,因此您无需担心如何传递客户端和处理 activity 未激活时可能发生的回调,玩家只会登录你的主要 activity.
确实不再需要从 BaseGameActivity 扩展您的 activity(观看有趣的解释:Death of BasegameActivity)。您需要做的是实现处理初始化 GoogleAPIClient 的两个接口:
public class MainActivity extends Activity implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
}
要实现这些,请参阅示例和文档:https://developers.google.com/games/services/android/init