我需要创建一个与Android应用程序一起运行的服务,无论用户在哪个应用程序屏幕上运行。 该应用程序是一个聊天应用程序,因此当设备离线时,服务应排队脱机发送的所有邮件,当设备连接时,它应同步所有邮件。
我已经为作业调度程序编写了代码,以便在设备联机时自动同步数据,但是当应用程序处于活动状态时,我想手动处理。
答案 0 :(得分:1)
您必须使用粘性而非服务的intent服务,这将在队列中执行并完成您的工作。由于它是一个意向服务,它将在系统终止服务过程后的某个时间自动启动。
答案 1 :(得分:1)
您可以通过以下简单步骤完成此操作:
您可以使用JobSheduler在此处创建服务,您也可以分配工作和时间。
参考链接:
https://developer.android.com/reference/android/app/job/JobScheduler.html
希望这种逻辑可以帮助你。
答案 2 :(得分:1)
操作系统仍然可以在低内存和其他情况下终止服务。有两种方法可以解决这个问题:
如果要实现该服务,请覆盖onStartCommand()并返回START_STICKY作为结果。它会告诉系统即使它因内存不足而想要终止你的服务,只要内存恢复正常就应该重新创建它。
AlarmManager。系统服务,定期执行操作。这将确保如果您的服务将被终止,或者甚至整个过程将终止(例如强制关闭) - 它将由AlarmManager 100%重新启动。
谢谢。