长时间运行的后台任务,Android

Ang*_*ngh 2 service android

我正在解析设备中的所有文本消息并从中提取单词。为此,我首先使用了Service,但它的问题在于它使应用程序变慢,或者有时我收到应用程序运行时间更长的通知。我使用的替代方法IntentService。但是意图服务的问题是,每当我停止应用程序时,我就看不到我的服务在运行了。除此之外,我还必须使用警报管理器来安排事情。我打算使用它SyncAdapter来做这两件事,但我认为使用它不是一个好选择。如果有更好的方法可以做到这一点,那将非常有帮助。

后台任务可能需要 5-10 分钟才能完成,我计划每 12 小时运行一次。虽然我不会再解析旧消息。所以第一次之后不会需要更长的时间。即使应用程序关闭,任务也不应该结束。

jay*_*i93 5

基本上IntentService适用于与应用程序生命周期无关的后台任务。

但是意图服务的问题是,每当我停止应用程序时,我就看不到我的服务在运行了。

您可以使用以下命令从 Intent 服务向 UI 发送更新:

LocalBroadcastManager如何使用LocalBroadcastManager?

Handler:如何从 IntentService 收集信息并更新 Android UI

您可能还想观看此视频:IntentService 之禅。(Android 性能模式)

编辑
忘记使用IntentService,它会随着应用程序停止而停止,因为它与应用程序在同一进程上运行。

由于您希望您的服务每 12 小时工作一次,您可以使用“计划服务”。您可以使用JobSchedulerFirebase JobDispatcher API