【发布时间】:2014-12-18 23:23:36
【问题描述】:
我正在尝试在我的应用程序中实现多个任务,即使在应用程序暂停(当应用程序失去焦点但用户尚未完全关闭应用程序时)也需要这些任务继续运行。
第一项任务包括建立与服务器的连接并接收更新。
第二个任务包括与配对的蓝牙设备来回通信。
这两个任务不会仅在应用暂停时运行,它们需要在应用处于焦点时运行。当应用程序处于焦点时,他们将需要根据收到的信息更新 GUI。此外,除了用户决定自己停止任务或应用程序完全关闭时,这两个任务都没有真正的完成条件,因此它们必须能够在中间过程中被取消。这两个任务很可能会运行很长时间。
总结:
- 应用不在焦点时可以运行的两个后台任务。
- 当应用处于焦点时,这两个任务都需要能够更新 GUI。
- 当用户决定在应用内停止任务或应用完全关闭时,这两个任务都必须能够终止。
我认为我需要使用 Service、IntentService 或 AsyncTask。
根据我的阅读,我相信我应该使用 AsyncTask,但我想在开始之前确定。
Service:无法操作 GUI。
IntentService:无法并行运行任务,它们将在同一个线程中排队。
AsyncTask:看起来不错!
这是正确的还是我应该以某种方式使用多种事物的组合?
【问题讨论】:
标签: java android multithreading android-asynctask android-service