Intent 服务有效,但 class 它会在应用程序关闭时停止工作
Intent Service works but class it calls to do work stops when app is closed
我的应用程序中有一个名为 ReplyMessageIntentService
的 IntentService
,此服务负责接收来自通知直接回复的消息。意图服务会立即调用 class SaveMessage
将消息保存到数据库。我应用中的其他 classes 和活动也使用 SaveMessage
class。
ReplyMessageIntentService
和 SaveMessage
一起工作得很好。但是,当应用程序长时间关闭时,如果我应该回复通知,ReplyMessageIntentService
会按原样调用,工作正常; SaveMessage
也是 called/initialized,但在将任何内容保存到数据库之前就停止了。通知托盘中的通知旋转器继续旋转,因为代码在我可以将反馈发送回 cancel/update 通知之前停止。
我怀疑我使用 IntentService
的方式不对,但是,我不想编写更多代码来将数据保存到 Intent 服务中的数据库中,因为我已经有了相关代码。如果前面的说法没有问题,我假设 IntentService
有一定的持续时间,当应用程序关闭一段时间后,任务必须完成。请让我知道这个问题的最佳解决方案。
从 Android 8.0 开始,对背景有更严格的限制 services.To 避免它们,您应该使用 JobIntentService
instead of IntentService
. You can read more information about it here。
如果你使用 workmanagar 会更好,它会在 API 14 之前调用警报 managar,在后台 Api 级别 14 之后调用作业调度程序,你还可以设置不同的约束。
我的应用程序中有一个名为 ReplyMessageIntentService
的 IntentService
,此服务负责接收来自通知直接回复的消息。意图服务会立即调用 class SaveMessage
将消息保存到数据库。我应用中的其他 classes 和活动也使用 SaveMessage
class。
ReplyMessageIntentService
和 SaveMessage
一起工作得很好。但是,当应用程序长时间关闭时,如果我应该回复通知,ReplyMessageIntentService
会按原样调用,工作正常; SaveMessage
也是 called/initialized,但在将任何内容保存到数据库之前就停止了。通知托盘中的通知旋转器继续旋转,因为代码在我可以将反馈发送回 cancel/update 通知之前停止。
我怀疑我使用 IntentService
的方式不对,但是,我不想编写更多代码来将数据保存到 Intent 服务中的数据库中,因为我已经有了相关代码。如果前面的说法没有问题,我假设 IntentService
有一定的持续时间,当应用程序关闭一段时间后,任务必须完成。请让我知道这个问题的最佳解决方案。
从 Android 8.0 开始,对背景有更严格的限制 services.To 避免它们,您应该使用 JobIntentService
instead of IntentService
. You can read more information about it here。
如果你使用 workmanagar 会更好,它会在 API 14 之前调用警报 managar,在后台 Api 级别 14 之后调用作业调度程序,你还可以设置不同的约束。