Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌游戏服务-未登录下一个活动_Android_Google Play Services_Google Play Games - Fatal编程技术网

Android 谷歌游戏服务-未登录下一个活动

Android 谷歌游戏服务-未登录下一个活动,android,google-play-services,google-play-games,Android,Google Play Services,Google Play Games,在我的应用程序中,我有游戏助手(我希望登录按钮单击): 在我的MainActivity(扩展BaseGameActivity)中,登录按钮后单击我调用: beginUserInitiatedSignIn(); 当然,现在isSignedIn()返回true 但当我进入下一个活动时(同样扩展BaseGameActivity): isSignedIn()返回false。 我当然可以在下一个活动中调用beginUserInitiatedSignIn(),但我不想要它。 在我

在我的应用程序中,我有游戏助手(我希望登录按钮单击):

在我的MainActivity(扩展BaseGameActivity)中,登录按钮后单击我调用:

beginUserInitiatedSignIn();             
当然,现在isSignedIn()返回true

但当我进入下一个活动时(同样扩展BaseGameActivity): isSignedIn()返回false。

我当然可以在下一个活动中调用beginUserInitiatedSignIn(),但我不想要它。 在我的应用程序中,用户可以登录,但不必登录。所以,若用户未在我的主活动中登录,我不希望在下一个活动中显示登录表单


编辑:目前,我的解决方案是创建静态变量,并在我将主活动保留为true时设置它,如果isSignedIn()为true,则在下一个活动中仅当该变量为true时调用beginUserInitiatedSignIn()。是否有更好的自动解决方案?

有两种类型的登录:

  • 用户发起的登录,显示Google Play Games徽标,并要求用户批准访问等
  • 静默登录(BaseGameActivity在其
    onStart
    调用中执行此操作)-这会自动尝试登录,如果用户已登录,则会执行与用户启动的登录流程相同的回调
  • 因此,在每个活动中尝试任何与Google Play Games相关的呼叫之前,您确实需要等待登录回调


    请注意,最近(4天前,2014年2月18日),更新了,以使用新模型,该模型允许您在登录之前进行读取调用(在尝试处理之前,它们将自动等待登录)。由于Google Api客户端提供了许多其他好处(例如提高了登录可靠性),如果您还没有更新到最新的
    BaseGameUtils

    您的答案与旧的BaseGameUtils库或新库相关,因为旧库如kolek said isSignedIn()始终返回false,因此我无法提交我未调用beginUserInitiatedSignIn()的任何其他活动的分数@萨加尔在收到对
    onSignancedAccessed
    的回调之前,您不能提交任何分数,这是事实。但是,即使在较旧的
    BaseGameUtils
    中,
    BaseGameActivity
    onStart()
    调用
    startConnections
    ,并且您始终会收到一个对
    onSigninsAccessed
    (表示您已成功连接)或
    onSignInFailed
    的回调(如果用户尚未成功登录,您需要调用
    beginUserInitiatedSignIn
    )。我已检查了在下一个活动中是否调用OnSignancedAccessed或OnSignancedFailed(同时扩展BaseGameActivity)但这不会发生……请在我的下一个活动备注中建议提交分数的任何方法:我已经在上一个活动中签名。@SagarG.-获得答案的最佳方式是提出问题并包含代码。
    beginUserInitiatedSignIn();