Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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 如何将GoogleAppClient传递给Google Play游戏的其他所有活动_Android_Google Play Games_Google Api Client_Leaderboard - Fatal编程技术网

Android 如何将GoogleAppClient传递给Google Play游戏的其他所有活动

Android 如何将GoogleAppClient传递给Google Play游戏的其他所有活动,android,google-play-games,google-api-client,leaderboard,Android,Google Play Games,Google Api Client,Leaderboard,我尝试过使用许多文档和资源,但找不到将GoogleAppClient传递给其他活动的正确方法。 对我来说,谷歌游戏登录成功是一项活动。我想在另一个活动中提交分数。 请给出如何完成我的项目的想法。如果您需要经常连接到GoogleapClient,那么我可能会创建一个singleton类来处理GoogleapClient调用 /** * Class to maintain singlton object of google api */ public class GoogleApiClient

我尝试过使用许多文档和资源,但找不到将GoogleAppClient传递给其他活动的正确方法。 对我来说,谷歌游戏登录成功是一项活动。我想在另一个活动中提交分数。
请给出如何完成我的项目的想法。

如果您需要经常连接到GoogleapClient,那么我可能会创建一个singleton类来处理GoogleapClient调用

/**
 *  Class to maintain singlton object of google api
 */
public class GoogleApiClient_Singleton {
    private static final String TAG = "GoogleApiClient";
    private static GoogleApiClient_Singleton instance = null;

    private static GoogleApiClient mGoogleApiClient = null;

    protected GoogleApiClient_Singleton() {

    }

    public static GoogleApiClient_Singleton getInstance(GoogleApiClient aGoogleApiClient) {

        if(instance == null) {
            instance = new GoogleApiClient_Singleton();

            if (mGoogleApiClient == null)
                mGoogleApiClient = aGoogleApiClient;
        }

        return instance;
    }

    public GoogleApiClient get_GoogleApiClient(){
        return mGoogleApiClient;
    }
}
或者从任何地方访问对象

在应用程序类文件中创建对象。别忘了在清单中添加应用程序。 然后在我的第二个活动中创建一个新的GoogleAppClient实例,然后像这样获取api客户机

public class App extends Application {
    private static GoogleApiClient mGoogleApiClient;

    private static App mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public void setClient(GoogleApiClient client){
        mGoogleApiClient = client;
    }

    public GoogleApiClient getClient(){
       return mGoogleApiClient;
    }
}

// In second activity
GoogleApiClient client = App.getInstance().getClient();
在清单中更新

<application
    android:name=".App"
    ... other tags
    />

通过在所有活动中提供登录代码,我解决了该错误。 所以我解决了在一个活动中登录并提交分数的问题,解决了另一个活动错误。 Google Play Games使用下面的链接实现登录


我添加了类似App.java的第二个答案,我将把这个方法GoogleApiClient client=App.getInstance().getClient()放在另一个活动中;但它显示红色下划线,无法解析或创建Getter或create属性。我是否需要创建Application.java以及如何将App.java放入AndroidManifestFile请回复pannunga Sir请回复this@KrishnakumarR检查我更新的答案,但仍然有问题,然后添加一些代码,以便我可以检查。如果答案有帮助,请接受并投票:)