当用户离开时,前台服务被杀死

时间:2013-08-02 16:47:08

标签: android android-service android-lifecycle

正如标题所说,我遇到了以下问题。当启动它的活动远离最近的任务列表时,我的前台服务被杀死。 我正在用

开始服务
    @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”启动服务,然后服务继续运行,但我怀疑这不是你应该怎么做的。

2 个答案:

答案 0 :(得分:1)

即使我遇到同样的问题,也可以访问onTaskRemoved()功能。请检查this链接,“流程生命周期”主题。 尝试从onStartCommand() START_REDELIVER_INTENT返回,服务将重新开始。

答案 1 :(得分:0)

来自Android Developer Reference

  

服务既可以启动,也可以绑定连接。在   在这种情况下,系统只要保持服务运行   要么启动,要么有一个或多个连接   Context.BIND_AUTO_CREATE标志。曾经两种情况都没有   hold,调用服务的onDestroy()方法,服务就是   有效终止。

您是如何开始服务的?