Google drive api 谷歌API客户端的多个实例?

Google drive api 谷歌API客户端的多个实例?,google-drive-api,google-drive-android-api,Google Drive Api,Google Drive Android Api,我有一个活动A,它实例化GoogleAppClient,连接并在AsyncTask中启动处理,这可能需要几秒钟或几分钟 同时,用户触发活动B,用连接实例化自己的GoogleAppClient 问题是:一个应用程序可以连接多个GoogleapClient实例并同时工作,还是我应该使用自己的信号量保持一个应用程序的单实例?可能有多个连接的GoogleapClient,只是可能效率低下。您确实需要小心地将GoogleAppClient与AsyncTasks一起使用,以免在活动停止时断开连接 考虑在保留

我有一个活动A,它实例化GoogleAppClient,连接并在AsyncTask中启动处理,这可能需要几秒钟或几分钟

同时,用户触发活动B,用连接实例化自己的GoogleAppClient


问题是:一个应用程序可以连接多个GoogleapClient实例并同时工作,还是我应该使用自己的信号量保持一个应用程序的单实例?

可能有多个连接的GoogleapClient,只是可能效率低下。您确实需要小心地将GoogleAppClient与AsyncTasks一起使用,以免在活动停止时断开连接


考虑在保留的片段中管理客户机。请参见

保留任意数量的GoogleAppClient是完全正确的,这样做通常有很好的理由(分离片段、不同的帐户等)。它也不是特别低效。两个客户的成本比一个客户的成本高不到1%


如果他们都试图解决错误,这可能会让人感到困惑,因此最好让片段客户端都忽略连接故障,让活动或应用程序级客户端负责解决问题。

这个问题是通过非常常见的OOP组合知识和工厂设计模式来解决的。说1%左右的话,比如下面的@Hounshell不是工程方法

谢谢(特别是链接)。如果我想在活动结束时继续我的异步任务,该怎么办?我应该在什么时候调用api客户端上的“断开”连接?始终连接具有GoogleAppClient连接的服务是否不好?我有一个安卓wear watchface服务,该服务始终处于连接状态,因此它可以从我的手表接收消息。我必须一直保持GoogleAppClient连接才能在数据层接收消息吗?我不知道Android Wear,但我可以回答第一部分。这不是“坏”,但肯定不是“好”。保持GoogleAppClient连接将保持服务打开。该服务的维护成本可能会很高,使用的API部分越多,维护成本就越高。这会导致负载增加,进而导致设备速度变慢、用户沮丧,任务管理器会杀死你的应用程序。最后,一般的建议是,如果用户正在积极使用你的应用程序,保持连接,当你进入后台时关闭连接,并定期进行投票。不过Android wear可能会有所不同。@Hounshell如果您试图使用Wearable.MessageApi或Wearable.DataApi直接在活动/片段中接收消息,则需要连接到GoogleAppClient。但是,您可以扩展WearableListenerService并覆盖onDataChanged()或onMessageReceived(),这样您就不必自己连接到GoogleAppClient。此时您可以使用广播接收器/事件总线将事件传输到您的活动/片段。