android - 如何在关闭应用程序时保持服务运行?

标签 android service

我的应用程序需要一个在后台运行的服务,即使应用程序已关闭,我刚刚实现了 START_STICKY 以防止操作系统关闭它,但是当我手动关闭应用程序时,服务停止运行并且我不知道如何不使用 startforeground 让它保持活力。

它是一个类似于 Whatsapp 和 Telegram 的即时通讯应用程序,所以我的目标是实现一种推送通知系统。

所以主要问题是:当用户手动关闭应用程序时,如何让服务保持 Activity 状态

最佳答案

在 StackOverflow 或其他地方发现没有任何真正令人满意的答案后,我决定研究(当前,2017 年)最终解决方案。

这里是:

https://github.com/JamesSmartCell/PersistentWidgetTask.git

这是一个演示,展示了如何实现一个不会被关闭的持久后台任务,它还展示了一个非常简单的小部件按钮实现,这是另一种非常常见的设计,但收不到很多好的答案。

我在互联网上看了很多小演示,关键是在优秀的 Vogella 网站上:

http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html

细目是:

  1. 您需要使用 JobScheduler 而不是 AlarmManager
  2. 您需要创建一个 JobService 来接收预定的作业,然后从 JobService onStartJob 调用您的后台服务
  3. 在您的 AndroidManifest 文件中您需要指定:

    android:permission="android.permission.BIND_JOB_SERVICE"

我希望这可以为仍在寻找答案的人节省大量时间!

关于android - 如何在关闭应用程序时保持服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344974/

相关文章:

android - 新的 Android Lifecycle Architecture 组件中是否可以在不进行注解处理的情况下观察生命周期事件?

android - 如何限制APK不能从 "Android Devices"卸载

docker - Kubernetes 服务连接被拒绝,如何访问服务?

android - GCM 是否在后台运行?

android - 我想知道 android 中 Activity 和服务之间的线程流

java - 如何优雅地停止 install4j 创建的 Windows 服务?

php - Symfony 4 AuthenticationUtils

java - 如何在 Android 中保存自定义 Java 对象?

android - Toast 不显示 Jelly Bean

android - 在 kotlin 中重新创建对象