【问题标题】:Android Worker Threads and the Application life cycleAndroid 工作线程和应用程序生命周期
【发布时间】:2013-01-11 18:47:26
【问题描述】:

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

【问题讨论】:

    标签: android multithreading cycle


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      android并发编程的一般规则

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

      【讨论】:

        猜你喜欢
        • 2012-06-01
        • 1970-01-01
        • 2011-06-02
        • 1970-01-01
        • 2011-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多