我正在我的应用程序中启动服务。目前我正在以一种简单的方式开始我的活动服务:
Intent i=new Intent(this,WindowService.class);
startService(i);
它在大多数设备中运行良好,但在某些设备(如lenovo和某些设备)中,当我从最近的任务中移除我的应用程序时,服务也会被活动杀死。所以我发现startForeground()
方法将解决这个问题问题。即使从最近的任务中删除了应用程序,startForeground()
方法也允许我的服务运行。
答案 0 :(得分:0)
是的,startForeground()
启动了一个前瞻性的服务,其中包含通知,告知用户该服务仍在运行。这是因为前景服务消耗了更多的资源,并且受到与后台服务不同的调度限制(即,它不会被快速杀死)。
常用于播放音乐,下载文件等。
答案 1 :(得分:0)
启动的服务可以使用startForeground(int,Notification)API 将服务置于系统考虑的前台状态 它是用户积极了解而不是a 内存不足时杀人的候选人。 (理论上还是如此 可能会在极端记忆压力下杀死该服务 从当前的前台应用程序,但在实践中这应该 不要担心。)
所以从文档来看,系统似乎不会终止前台服务