情况是这样的:我的应用程序有一个活动,处理一个持久的 TCP 连接并使用很多东西动态更新 UI(对象的哈希表、按钮、ArrayLists、适配器......)。目前,我使用 AsyncTask 处理连接,并寻找一种保存方法:
- 连接
- 所有变量,例如动态创建的视图
当屏幕旋转或用户接到电话时,我发现:http : //www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html 对我来说看起来很酷。但我也到处读到我应该使用服务,因为它更适合长期的 TCP 连接。为什么选择异步任务:
- 看起来我可以使用片段保存 TCP 连接
- 无论如何,我都必须做类似的事情,以便从旋转/调用中保存对象、按钮等
- 我只有一项需要连接的活动(服务是否指示不止一项?)
为什么服务:
- 不需要使用 Fragments 来保存 TCP 连接(是真的吗?什么样的服务,正常,IntentService,因为我只有一个客户端,或者有界,我应该使用来执行此操作吗?)
- 更适合长期连接
当我说“服务”时,我假设无论如何我都必须在服务中运行 AsyncTask,因此它不会处理主要活动上的连接。我该怎么办?