我已经实现了一个后台服务,它与我的应用程序在同一进程中运行。我的问题是,当应用程序关闭时(窗口按钮上的选项卡,然后向左滑动应用程序以关闭它),它会导致整个过程关闭并且服务也停止工作。
在后台服务的 OnStartCommand() 回调中,我返回 START_STICKY。
该进程在应用设置页面上显示为已关闭(0 个进程和 1 个服务)大约需要 5 秒,如下所示
目前为了克服这个问题,在我的活动 OnDestroy() 回调中,我设置了一个警报管理器以在 10 秒后再次启动我的服务 - 给进程足够的时间在再次打开之前完全关闭。这个解决方案在一定程度上有效,但这不是我想要的。我真正想要的是我的服务不要从一开始就关闭。
我已经研究了在单独的进程中创建服务的选项,但是,我发现在服务类和东西上使用变量和函数时存在很大困难,因为它们现在位于单独的内存堆栈中。
我知道前台服务解决方案,但不幸的是,始终将通知贴在那里非常令人生畏。
即使用户关闭应用程序,是否有任何好的解决方案可以保持服务运行?