正如标题所说,我遇到了以下问题。当启动它的活动远离最近的任务列表时,我的前台服务被杀死。 我正在用
开始服务 @Override
public int onStartCommand(Intent intent, int flags, int startId) {
startForeground(notificationID, notification);
return START_STICKY;
}
有人可以告诉我为什么会发生这种情况,我该如何做到这一点,以便当用户将活动放开时服务保持运行。
由于某些原因,我无法访问public void onTaskRemoved(Intent rootIntent),但我不知道该方法该怎么做......
我正在启动这样的服务,这不是绑定服务
serviceIntent = new Intent(this, RecordingService.class);
startService(serviceIntent);
如果小用例描述有助于我尝试从通知栏中的远程视图控制录音机,那么重新启动服务不是一个选项,因为它应该继续记录,即使活动被破坏。
顺便说一下。我确实试过在另一个进程中通过android:process =“:recordingProcess”启动服务,然后服务继续运行,但我怀疑这不是你应该怎么做的。
答案 0 :(得分:1)
即使我遇到同样的问题,也可以访问onTaskRemoved()
功能。请检查this链接,“流程生命周期”主题。
尝试从onStartCommand()
START_REDELIVER_INTENT
返回,服务将重新开始。
答案 1 :(得分:0)
服务既可以启动,也可以绑定连接。在 在这种情况下,系统只要保持服务运行 要么启动,要么有一个或多个连接 Context.BIND_AUTO_CREATE标志。曾经两种情况都没有 hold,调用服务的onDestroy()方法,服务就是 有效终止。
您是如何开始服务的?