【发布时间】:2016-10-22 05:19:13
【问题描述】:
我正在开发一个应用程序,其中创建了一个后台服务来收集传感器数据。我从我的活动开始服务:
startService(new Intent(this, MyService.class));
我创建了服务,因此如果应用程序被销毁,后台服务仍会继续收集数据。我试过这个,它在一定程度上奏效了。我的问题是,当我终止应用程序时,服务似乎重新启动,因为调用了 onCreate() 服务和 onStart() 方法。请问有什么方法可以不重启服务吗?
更新:
正如下面的答案所建议的,我在服务中添加了以下方法,但没有成功。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_NOT_STICKY;
}
【问题讨论】:
-
这也发生在我身上。而且我也不做任何绑定
-
你没有提到它,所以:你有没有尝试在 AndroidManifest 中为你的服务指定一个单独的全局进程?
-
你有什么解决办法吗?如果有请指导我
-
我最终使用了前台服务。这种类型的服务被认为是用户主动了解的进程,因此系统不会将其视为在内存不足时杀死的候选进程。为了确保用户知道正在运行的进程,它必须提供一个只有在服务停止时才能解除的通知。
标签: android service background-service