为多个活动创建GoogleApiClient

orb*_*tal 9 java android google-api google-plus

我正在使用Google+ API开发Android应用.我有多个活动,每个活动都需要一个GoogleApiClient实例.

据我所知,从这篇文章可以为每个活动调用相同的GoogleApiClient实例.我的问题是我们如何专门创建GoogleApiClient的副本?

我们是否使用.addApi(),. addscope()再次构建一个并再次实现onConnected方法和OnConnectedFailedListener方法?因为它似乎重复而且效率低下.并且不会实现这些方法也会覆盖与其他活动相同的方法吗?

Hou*_*ell 14

创建多个实例并不昂贵GoogleApiClient.事实上,如果您使用的不仅仅是一个API,它将有助于提高效率.只有您特别请求的服务才会被假脱机.因此,如果一个活动使用Plus而另一个活动使用Drive,则当您使用Drive活动时,不必假脱机服务.

为了清楚起见,建议您为您创建的GoogleApiClient每个Activity,Fragment,Loader,Service或Application 创建一个单独的实例(甚至可能是我忘记的其他一些实例).

如果您确实不想这样做,请使用应用程序上下文而不是活动或片段来创建GoogleApiClient并在Application对象中保存对它的引用.


Rob*_*b85 1

我刚刚也遇到过同样的困境。为了解决这个问题,我使用了 BaseGameUtil...不确定您是否使用它,但如果您使用的话,那么很简单,您可以让每个活动扩展 BaseGameActivity,添加所需的方法,然后创建一个 GoogleApiClient obj 和 getApiClient ,然后为您提供在第二个活动中使用 GoogleApiClient 的方法。

mGoogleApiClient = getApiClient();
Run Code Online (Sandbox Code Playgroud)

如果你不使用 BaseGameUtil 那么我认为你必须像上面那样创建它,这是一个痛苦,至少 basegameutil 为你做了它,而且你总是可以更改 BGU 中的内容,因为它们是比库更多的示例。

希望这可以帮助。