【问题标题】:Thread in a Service or Service in a Thread?服务中的线程还是线程中的服务?
【发布时间】:2011-01-27 16:56:01
【问题描述】:

我正在为 Android 编写一个应用程序,它可以从网络上检索数据并为用户重新格式化它。用户指定一些输入数据,HttpClient 连接到站点,并返回代表用户请求数据的对象。

网络部分显然太慢了,无法在主线程中运行,所以我考虑将它拆分到不同的线程中,也许作为一个服务。所以我有一个设计问题:

1) 我应该在新线程中为每个请求启动一个新的 HttpClient,还是应该构建一个处理 Http 并返回数据的服务,以便在单独的线程中运行?

2) 对于像我这样的应用程序,在线程或活动之间进行通信的最简单方法是什么?

干杯

【问题讨论】:

标签: android multithreading concurrency service


【解决方案1】:

AsyncTask 会是更好的选择。这样您就可以在通话中使用进度条更新 UI。

详情http://developer.android.com/reference/android/os/AsyncTask.html

【讨论】:

  • 是的,我是这么认为的,但这会浪费内存...为 HttpClient 和解析器实例化了很多对象... +1 为简单起见 -1 为性能....
  • 平心而论,您的问题是,我引用“对于像我这样的应用程序,在线程或活动之间进行通信的最简单方法是什么?” -- 他可能给了你最简单的方法。
  • 没有什么可以阻止您拥有一个处理解析并由 AsyncTask 使用的单例(您可能应该用工厂类包装)。 AsyncTask 将比 Service 轻量级得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2019-03-27
相关资源
最近更新 更多