杀死时如何自动重启服务?

Posted

技术标签:

【中文标题】杀死时如何自动重启服务?【英文标题】:How to auto restart a service when killed? 【发布时间】:2014-10-28 18:19:03 【问题描述】:

我已经发布了很多关于这个主题的帖子,其中一些作品,但仅在某些设备上。例如,它适用于我的 Nexus 4、带有 cyaogenmod 的 Nexus 5,但不适用于我的小米 Mi2s(果冻梁 4.1.1)

我尝试将其设置为粘性,使用警报,并在销毁时使用广播接收器。但他们俩都没有成功。当我杀死应用程序时,它再也不会醒来。但是在同一设备上,Whatsapp 可以完美运行,即使我杀死它,它也会再次唤醒..

有什么方法可以不使用 GCM 吗?

一些我已经查过的链接:

How to restart a killed service automatically?

Service that repeatedly runs a method, after an amount of time

https://***.com/a/21551045/627307

【问题讨论】:

如果需要,您可以每隔几分钟就有一个警报管理器来重新启动您的服务。你也试过看看是否调用了onStoponDestroyed 方法? START_STICKY 不工作? onDestroyed 没有被调用,并且在小米上也没有开始粘性。相反,whatsapp 服务没有被杀死 您是否为您的查询找到任何解决方案?我在使用小米设备时遇到了同样的问题。 【参考方案1】:

我不确定它是否会为您解决问题,但它对我有用。

我正在运行 MIUI 6.6.10

    打开小米提供的安全应用

    点击权限->自动启动

    此处允许您的应用自动启动

WhatsApp 和所有著名的应用程序都能正常工作,因为小米将它们列入白名单并允许它们自动启动。

【讨论】:

你有没有检查它是否在重启服务?如果是,你是如何检查的?因为我已经为我的应用启用了自动启动选项,仍然不知道如何找到它是否在杀死它时重新启动。

以上是关于杀死时如何自动重启服务?的主要内容,如果未能解决你的问题,请参考以下文章

Android 开发之Service 探索如何保证Service不被杀死或被kill之后自动重启

如何防止应用重启后自动创建子片段?

如何使 InnoDB 表在服务器重启时不重置自动增量?

如何自动重启节点服务器?

如何修改java类不自动重启服务

如何自动重启 GCE 抢占式实例?