Android工作线程和应用程序生命周期

3

我有一个应用程序,其中包含一个UART(串行通信)和几个其他“任务”,这些任务需要单独的工作线程来保持UI响应。我的问题在于理解何时/在何处创建这些线程以及它们何时终止。目前,我是在主UI Activity的OnCreate()中创建它们。但是,这会引起混乱,因为最近我需要从一个Activity“跳转”回到主Activity。建议使用Intent和StartActivity()以适当的标志“清除顶部”。但是,这当然会为我的线程创建全新的实例,一切都会崩溃。我应该使用与我的UI相关联的Service吗?我已经对我的主应用程序进行了子类化,因此我有了我的Application的OnCreate()。我倾向于这个方案,但似乎无法掌握Application与Activities的生命周期。

2个回答

2

使用服务。您有一个持续的任务,它不会本质上附加到特定的活动。

您可以使用 startService 开始一个长时间运行的任务,服务将一直运行直到完成。同时,只要有东西绑定到它上面,Context#bindService 将保持服务处于活动状态。


2

Android并发编程的一般规则

  • 如果您需要在UI线程之外执行某些操作并返回结果,请在需要使用时创建一个AsyncTask
  • 如果您有一个一次性的要求来完成一些工作(例如发布Web服务请求),请使用AsyncTask
  • 如果您想在单个活动中重复执行某些操作,但无需在活动销毁后运行或向另一个服务发送数据,请使用线程
  • 如果您需要与多个活动通信,请使用服务
  • 如果您需要在启动活动结束之前/之后运行,请使用服务

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接