崩溃时的Android停止服务

问题描述:

我正在运行一个Service并且在奇怪的情况下想知道我的应用程序崩溃会自动终止我的Service吗?如果发生这种情况,我不希望它继续。崩溃时的Android停止服务

如果不是,有没有办法做到这一点,如在onDestroy()方法?

+0

你正在运行什么样的服务? – Prmths

+0

@Prmths背景定位服务。所以它不会一直运行,只有当用户启动它时。但我只是想确保它在发生碰撞时停下来。 –

+0

我找不到该类的文档。你正在使用的服务是什么类? – Prmths

我已经做了一些研究,并且我认为我对你的问题有一个完整的答案。

子类Service是好的,你不使用远程服务假设(在不同的过程Service)假设你Service是在同一进程作为Activity,他们将两端在一起,在的情况下,一场崩溃。既然如此,我以前使用BoundService的建议实际上不会产生不同的结果,并且基于对Application组件在Android进程中的工作原理的错误理解。

Android bound service - should I manually reconnect in onServiceDisconnected or it tries reconnect automatically引用:

本地服务:

服务是在同一过程中的其他部件(即 活动结合于它)从相同的应用程序,运行时该单 应用程序作用域进程已崩溃或已被终止,此过程中的所有组件(包括绑定到此服务的活动)也可能被破坏,因此非常有可能为 。

此外,您可以阅读Remote Service Vs. Local Service

+0

我怎么知道他们是否在同一个过程中? –

+0

我知道的唯一方法是在Manifest中声明它。 '这可以通过在清单文件中的标记中为服务添加android:process属性来实现。为了启动远程服务,还需要为该服务提供意图过滤器。要实现这些更改,请修改AndroidManifest.xml文件以添加所需条目:'[Android Remote Bound Services - A Worked Example](http://www.techotopia.com/index.php/Android_Remote_Bound_Services_%E2%80%93_A_Worked_Example ) – Prmths