Android在后台关闭应用程序时,如何停止?

Android在后台关闭应用程序时,如何停止?,android,background-process,lifecycle,shutdown,application-shutdown,Android,Background Process,Lifecycle,Shutdown,Application Shutdown,我开发了一个用于GPS跟踪的繁忙应用程序。它在前景中运行良好。它使用GPS/位置回调以及文本到语音、消息和心率监测硬件的后台服务。问题是Android操作系统在后台运行时偶尔会关闭它。如果使用电源按钮关闭屏幕,屏幕将保持正常运行。如果使用HOME按钮关闭屏幕并运行其他应用程序,Android有时会在几分钟后关闭应用程序,即使它需要继续工作。有没有办法使用isFinishing()/onDestroy()或类似工具保持应用程序运行?返回按钮操作被正确捕获,用户可以选择取消。谢谢,克里斯。为了避免这

我开发了一个用于GPS跟踪的繁忙应用程序。它在前景中运行良好。它使用GPS/位置回调以及文本到语音、消息和心率监测硬件的后台服务。问题是Android操作系统在后台运行时偶尔会关闭它。如果使用电源按钮关闭屏幕,屏幕将保持正常运行。如果使用HOME按钮关闭屏幕并运行其他应用程序,Android有时会在几分钟后关闭应用程序,即使它需要继续工作。有没有办法使用isFinishing()/onDestroy()或类似工具保持应用程序运行?返回按钮操作被正确捕获,用户可以选择取消。谢谢,克里斯。

为了避免这种情况,你的应用程序应该启动前台服务(一个调用startForeground()的服务),显示一个不可撤销的通知,并获取PowerManager.PARTIAL\u WAKE\u锁


它可以防止手机进入睡眠模式,并防止系统关闭你的应用程序(100%时无法避免),但这显然会对电池消耗产生显著影响。

要避免这种情况,你的应用程序应该启动前台服务(调用startForeground()的服务),显示不可撤销通知并获取PowerManager.PARTIAL\u WAKE\u锁


它可以防止手机进入睡眠模式,并防止系统关闭你的应用程序(100%时无法避免),但这显然会对电池消耗产生显著影响。

使用粘性服务在后台进行更新。尽管您必须了解自安卓M以来安卓打盹行为的变化,但这里是为您提供的。在后台使用Sticky服务进行更新。尽管你必须研究自安卓M以来安卓打瞌睡行为的变化,这里是为了“它阻止手机进入睡眠模式”——不,它没有。WakeLock可防止设备进入睡眠模式。前台服务不会自动获取唤醒锁。好的,我忘记了唤醒锁。。。编辑。但在几个月前我做的一些测试中,它在有无唤醒锁的情况下都能正常工作,但我还是保留了它,以防万一,“它会阻止手机进入睡眠模式”——不,它不会。WakeLock可防止设备进入睡眠模式。前台服务不会自动获取唤醒锁。好的,我忘记了唤醒锁。。。编辑。但在我几个月前做的一些测试中,它在有和没有wake_lock的情况下都能正常工作,但我仍然保留着它,以防万一。