我正在开发一个带有Google+ API的Android应用程序。我有多个活动,每个活动都需要一个GoogleApiClient实例。为多个活动创建GoogleApiClient
据我所知,从this post可以为每个活动调用同一个GoogleApiClient实例。我的问题是我们如何专门创建GoogleApiClient的副本?
我们是否用.addApi(),.addscope()再次构建一个,并再次实现onConnected方法和OnConnectedFailedListener方法?因为它似乎重复性和低效率。并且不会实现这些方法也会覆盖其他活动的相同方法吗?
我正在考虑将我的引用保留在GoogleApiClient的一个静态和漏斗工作中,从我应用程序中几个不同位置(即:从Activity或从接收推送消息的结果的服务)的消息队列中进行。你能想到使用应用程序上下文来保持静态引用GoogleApiClient的任何红旗吗?它与将它保留在Application对象中似乎有点不同。 –
使用应用程序上下文会带来影响。该服务维护起来可能很昂贵。如果在不需要它的时候保持这种状态,会导致大量额外的CPU和内存使用,这可能会让您在低端设备上遇到问题,并且更可能导致您的应用在后台关闭。由于这些原因,保留与应用程序上下文相关的引用是不受欢迎的。如果你打算这样做,将它存储在Application对象或其他单例中并不重要。 – Hounshell
感谢您的快速响应!我意识到我可以在GoogleApiClient上使用blockingConnect,因为我在后台线程中完成所有工作,我想我可以在GoogleApiClient上使用blockingConnect,注册我的geofences(假设阻塞结果成功),然后立即断开连接。我更喜欢这样做,而不是永远保持客户和环境。 –