Android 当应用程序退出(或终止)时启动服务

Android 当应用程序退出(或终止)时启动服务,android,xamarin.android,android-intentservice,Android,Xamarin.android,Android Intentservice,我想在我的应用程序关闭时启动前台服务 我尝试了OnStop(),但这对我来说不是一个好主意,因为它可以触发多次,我希望它只运行一个实例 我尝试了OnDestroy(),但它根本不会触发,因为我在整个应用程序中只使用了一个活动,而且大多数情况下,它会被刷卡杀死 是否有一种方法可以检测我的应用程序何时被终止或关闭 谢谢 您可以在manifest.xml=“false”中添加服务描述,并在您的服务中覆盖,以了解API级别14及更高版本启动服务的活动何时停止 或者,您可以设置一段时间的警报,以检查应用程

我想在我的应用程序关闭时启动前台服务

我尝试了OnStop(),但这对我来说不是一个好主意,因为它可以触发多次,我希望它只运行一个实例

我尝试了OnDestroy(),但它根本不会触发,因为我在整个应用程序中只使用了一个活动,而且大多数情况下,它会被刷卡杀死

是否有一种方法可以检测我的应用程序何时被终止或关闭


谢谢

您可以在manifest.xml=“false”中添加服务描述,并在您的服务中覆盖,以了解API级别14及更高版本启动服务的活动何时停止


或者,您可以设置一段时间的警报,以检查应用程序是否仍在使用。您应该小心使用此tho,因为它可能会根据您选择的时间消耗电池。

无论您启动它多少次,只有一个服务实例将运行。每次客户端启动服务时,
onStartCommand
方法都会触发<代码>退货服务。启动\u在应用程序退出后,让您的服务在后台运行。但是要注意,如果事情变得繁忙,手机需要内存,您的服务将被终止,您必须按照@Onur的建议重新启动它,并使用保守的定期
AlarmManager
意图

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    // the service is started so after all clients are unbound it stays
    // running
    return Service.START_STICKY;
}

我使用前台,因为我希望它即使在我的应用程序关闭时也能运行。设置“开始粘性”标志是不够的。onStartcommand的问题是,就像你说的,它被多次开火。我可能只使用onCreate方法。我会仔细看看这个感谢,我发现没有更好的方法像应用程序上的一些基本关闭事件。。。感觉我总是要在安卓系统上作战。我也做了同样的步骤,但服务无法启动,你能帮我吗?@HirenPatel我研究安卓已经有一段时间了,我不知道最近api的变化,但我可以试试。有什么错误日志吗?