如何防止应用关闭时 startCommand 的意图返回 null

Posted

技术标签:

【中文标题】如何防止应用关闭时 startCommand 的意图返回 null【英文标题】:How to prevent intent of startCommand to return null when the app closed 【发布时间】:2019-03-13 15:20:36 【问题描述】:

我正在我的应用程序中使用一项服务。该服务用于显示通知。当我启动它时,我会向服务发送附加内容。问题是,当我从后台删除应用程序窗口时,onStartCommand 方法会再次以空意图调用,因此额外内容不存在。所以我的问题是如何停止粘性服务?有没有可能?

【问题讨论】:

检查 Intent 是否有 extras,如果没有则忽略它? 这是您返回 START_STICKY 时的预期行为。检查onStartCommand 可能返回值的文档以更改该行为。 我知道,但我需要想办法阻止它 【参考方案1】:

您可以通过在服务的 onPause() 或 onDestroy() 处调用 stopService(intent_of_your_service) 来停止 Stiky 服务。 这里,intent_of_your_service 是您在 onCreate() 中创建的 Intent,或者使用 stopSelf()(即停止服务)来停止粘性服务。

【讨论】:

以上是关于如何防止应用关闭时 startCommand 的意图返回 null的主要内容,如果未能解决你的问题,请参考以下文章

iphone - 如何防止应用程序在下载数据时被阻止[关闭]

当从控制器启动的作业失败时,如何防止弹簧批处理关闭应用程序?

如何防止 IIS 在不使用时关闭网站?

防止在关闭屏幕时重新创建 Android 活动

关闭选项卡时如何防止调试器停止

单击外部弹出框时如何防止 UIPopoverPresentationController 被关闭?