Service vs AsyncTask用于处理配置更改和TCP连接

时间:2014-10-31 05:53:44

标签: java android android-asynctask android-service android-configchanges

这种情况是:我的应用程序有一个活动,处理持久的TCP连接并动态更新UI有很多东西(HashTables的对象,按钮,ArrayLists,适配器......)。 目前,我处理与AsyncTask的连接,并寻找一种保存方式:

  • 连接
  • 所有变量,如动态创建的视图

当屏幕旋转或用户接到来电时,我发现:http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html 这看起来很酷我。但我也到处读到我应该使用服务,因为它对于持久的TCP连接更好。 为什么选择AsyncTask:

  • 看起来我可以使用Fragment保存TCP连接
  • 无论如何我都要做类似的事情,以便从旋转/调用中保存对象,按钮等
  • 我只有一个需要连接的活动(不是多个服务?)

为什么服务:

  • 不需要使用Fragments来保存TCP连接(这是真的吗?什么样的服务,正常,IntentService,因为我只有一个客户端,或者有界,我应该这样做吗?)
  • 更好的持久连接

当我说“服务”时,我认为无论如何我都必须在服务中运行AsyncTask,因此它不处理主活动上的连接。我该怎么办?

1 个答案:

答案 0 :(得分:0)

通常,当后台线程的生命周期包含在单个活动的生命周期中时,请使用AsyncTask。否则,请使用Service