我有一个activity 一个,它实例化GoogleApiClient,在AsyncTask中连接并开始处理,这可能需要几秒钟或几分钟。
同时,用户触发activity B,它使用连接实例化它自己的GoogleApiClient。
问题是:一个应用程序是否可以同时连接和工作多个GoogleApiClient实例,或者我是否应该使用自己的信号量来保持应用程序的单例?
发布于 2014-04-01 03:21:22
可能会有多个连接的GoogleApiClients,但效率可能会很低。在AsyncTasks中使用GoogleApiClient时需要注意,如果活动消失,它不会断开连接。
考虑在保留的片段中管理GoogleApliClient。请参阅http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html
发布于 2014-04-18 09:42:24
保留尽可能多的GoogleApiClients是完全可以的,而且这样做通常有很好的理由(分离碎片、不同的帐户等)。它的效率也不是特别低。两个客户端的成本比一个客户端的成本高出不到1%。
如果它们都试图解决错误,这可能会令人困惑,因此让片段客户端都忽略连接故障可能是一个好主意,并由一个活动或应用程序级客户端负责解决问题。
发布于 2016-07-17 20:28:33
这个问题是通过非常常见的OOP组成知识和工厂设计模式来解决的。说一些关于1%的东西,比如@Hounshell,下面不是工程方法。
https://stackoverflow.com/questions/22766547
复制相似问题