3

我有一个应用程序,其中我有一个 UART(串行通信)来服务和其他几个需要单独的工作线程来保持 UI 响应的“任务”。我的问题是了解我应该在何时/何地创建这些线程以及它们何时终止。目前,我正在主 UI Activity 的 OnCreate() 中创建它们。但是,这会造成严重破坏,因为我最近需要从一个活动“跳”回主要活动。建议是使用带有适当标志的 Intent 和 StartActivity() 来“清除到顶部”。但是,这当然会为我的线程带来一组全新的实例,并且一切都会瓦解。我应该使用某种服务,以某种方式绑定到我的 UI 吗?我已经对我的主应用程序进行了子类化,所以我有我的应用程序的 OnCreate()。我倾向于那个,但不能

4

2 回答 2

2

使用服务。您有一项正在进行的任务,该任务本身并不依附于某个特定活动。

您可以启动一个长时间运行的任务,startService并且该服务在完成之前不会被终止。同时,Context#bindService只要绑定了任何东西,它就会使服务保持活力。

于 2013-01-11T18:52:51.863 回答
2

android并发编程的一般规则

  • 如果您需要在 UI 线程之外执行某些操作并返回结果,请使用在您想使用它时创建的 AsyncTask
  • 如果您有做一些工作的 1 off 要求(比如发布网络服务请求),请使用 AsyncTask
  • 如果您反复想在单个活动中执行某些操作,但不需要在活动被销毁后运行或将数据发送到另一个服务,请使用线程
  • 如果您需要与多个活动交谈,请使用服务。
  • 如果您需要在启动活动结束之前/之后运行,请使用服务
于 2013-01-11T18:57:08.587 回答