我已经实现了一个与我的应用程序在同一进程中运行的后台服务。我的问题是,当关闭应用程序时(Windows按钮上的选项卡,然后向左轻扫应用程序以关闭它),它会导致整个过程关闭,服务也会停止工作。
在后台服务中的OnStartCommand()回调中,我返回START_STICKY。
此过程在应用设置页面上显示为已关闭(0个进程和1个服务)大约需要5秒钟,如下所示
目前为了解决这个问题,在我的活动OnDestroy()回调中,我设置了一个警报管理器,在10秒钟后再次启动我的服务 - 足够的时间让进程完全关闭再重新打开它。这种解决方案在某种程度上起作用,但这不是我想要的。我真正想要的是我的服务不要从头开始关闭。
我已经看过在单独的进程中创建服务的选项,但是,我发现在服务类和东西上使用变量和函数时遇到了很大的困难,因为它们现在位于不同的内存堆栈中。
我知道前台服务解决方案,但遗憾的是,该通知始终存在,非常令人生畏。
即使用户关闭应用程序,还有什么好的解决方案可以保持服务正常运行吗?