我正在解析设备中的所有文本消息并从中提取单词。为此,我首先使用了Service
,但它的问题在于它使应用程序变慢,或者有时我收到应用程序运行时间更长的通知。我使用的替代方法IntentService
。但是意图服务的问题是,每当我停止应用程序时,我就看不到我的服务在运行了。除此之外,我还必须使用警报管理器来安排事情。我打算使用它SyncAdapter
来做这两件事,但我认为使用它不是一个好选择。如果有更好的方法可以做到这一点,那将非常有帮助。
后台任务可能需要 5-10 分钟才能完成,我计划每 12 小时运行一次。虽然我不会再解析旧消息。所以第一次之后不会需要更长的时间。即使应用程序关闭,任务也不应该结束。
基本上IntentService
适用于与应用程序生命周期无关的后台任务。
但是意图服务的问题是,每当我停止应用程序时,我就看不到我的服务在运行了。
您可以使用以下命令从 Intent 服务向 UI 发送更新:
LocalBroadcastManager
: 如何使用LocalBroadcastManager?
Handler
:如何从 IntentService 收集信息并更新 Android UI
您可能还想观看此视频:IntentService 之禅。(Android 性能模式)
编辑:
忘记使用IntentService
,它会随着应用程序停止而停止,因为它与应用程序在同一进程上运行。
由于您希望您的服务每 12 小时工作一次,您可以使用“计划服务”。您可以使用JobScheduler或 Firebase JobDispatcher API
归档时间: |
|
查看次数: |
5426 次 |
最近记录: |