2

正如标题所说,我遇到了以下问题。当启动它的活动从最近的任务列表中消失时,我的前台服务被杀死。我正在开始一项服务

    @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" 在另一个进程中启动服务,并且该服务确实继续运行,但我怀疑这不是你应该这样做的方式。

4

2 回答 2

1

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

于 2013-08-02T17:09:51.237 回答
0

来自Android 开发者参考

服务既可以启动,也可以绑定连接。在这种情况下,只要服务已启动或有一个或多个使用 Context.BIND_AUTO_CREATE 标志的连接,系统就会保持服务运行。一旦这两种情况都不成立,就会调用服务的 onDestroy() 方法并有效地终止服务。

你是如何开始你的服务的?

于 2013-08-02T16:55:11.617 回答