我的应用程序需要一个在后台运行的服务,即使应用程序已关闭,我刚刚实现了 START_STICKY 以防止操作系统关闭它,但是当我手动关闭应用程序时,服务停止运行并且我不知道如何不使用 startforeground 让它保持活力。
它是一个类似于 Whatsapp 和 Telegram 的即时通讯应用程序,所以我的目标是实现一种推送通知系统。
所以主要问题是:当用户手动关闭应用程序时,如何让服务保持 Activity 状态?
最佳答案
在 StackOverflow 或其他地方发现没有任何真正令人满意的答案后,我决定研究(当前,2017 年)最终解决方案。
这里是:
https://github.com/JamesSmartCell/PersistentWidgetTask.git
这是一个演示,展示了如何实现一个不会被关闭的持久后台任务,它还展示了一个非常简单的小部件按钮实现,这是另一种非常常见的设计,但收不到很多好的答案。
我在互联网上看了很多小演示,关键是在优秀的 Vogella 网站上:
http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html
细目是:
- 您需要使用 JobScheduler 而不是 AlarmManager
- 您需要创建一个 JobService 来接收预定的作业,然后从 JobService onStartJob 调用您的后台服务
在您的 AndroidManifest 文件中您需要指定:
android:permission="android.permission.BIND_JOB_SERVICE"
我希望这可以为仍在寻找答案的人节省大量时间!
关于android - 如何在关闭应用程序时保持服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344974/