基本上,我需要编写的代码很简单,但由于我是初学者,我仍然对 Service、IntentService、创建与主 Activity/UI 线程分开的新线程等感到困惑。我将首先解释 Task 和那么,我认为这可能是最好的实现方式。
任务
Main Activity/UI 有两个按钮,Start 和 Stop。应用程序应该循环两个任务,TaskA 和 TaskB。当按下开始时,循环被执行。这个循环里面有这些步骤——
- Main Activity 的 UI 上的更新状态:“TaskA execution in 60 seconds”
- 等待 60 秒
- 更新状态...:“TaskA Executing”
- 执行任务A
- 更新状态...:“TaskB 在 120 秒内执行”
- 等待 120 秒
- 更新状态...:“TaskB 正在执行”
- 执行任务B
完成后,循环重复。这个循环必须一直持续到用户按下停止。如果 Main Activity/UI 为 onPause、onStop 或 onDestroy,则此循环不得停止、中断或销毁。Main Activity/UI 应该与循环线程完全分开。
停止按钮:停止循环内所有步骤的执行,无论它是哪个步骤。取消所有计划任务并停止服务。App 现在应该处于的状态必须与 App 第一次启动时一样(与按下 Start 之前的状态相同)。
问题
我不确定 Service 和 IntentService 的全部功能。我知道 Service 可以执行多线程,而 IntentService 执行任务队列并一一执行。
潜在解决方案
我上面的循环需要以确切的顺序执行这 8 个步骤,因此 IntentService 将是理想的解决方案。
但我的问题是:我能否创建一个完全独立于主活动/UI 线程的 IntentService,使其不依赖于主活动的生命周期或线程?
如果不是,那么实现这一目标的理想选择是什么?
谢谢