当我打开我的项目 Activity 时,我调用 startService(Intent intent)
方法来启动一个新服务。
当 Activity 被销毁时,服务不应该被杀死(因为我没有使用 bindService()
方法),但事实是当我关闭我的 Activity 时服务被杀死并且在其次,系统创建了一个新服务(我验证了,系统再次调用了我的服务的 onCreate()
方法)。我需要做什么才能只保留一项服务?谢谢
最佳答案
要让服务独立于应用程序的主进程运行并确保 Android 不会在它执行某些操作时终止它,您应该做/尝试做两件事。
在单独的进程中运行您的服务。您可以通过将以下属性添加到 list 中的服务声明来实现此目的:
android:process=":somenamehere"
当您的服务正在运行并且您不希望它被操作系统终止时,您必须使用
startForeground(int id, Notification notification)
方法。当服务完成正在执行的操作并且可以被操作系统终止时,调用stopForeground(boolean removeNotification)
。 “startForeground”需要一个通知作为参数,因为每个前台服务都必须显示一个通知,以便用户意识到这一点
希望对你有帮助
关于android - 服务在 Activity 被销毁时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938891/