gpt4 book ai didi

java - 应用程序被任务管理器杀死后,该服务是否仍然可以运行?

转载 作者:行者123 更新时间:2023-12-02 06:01:17 28 4
gpt4 key购买 nike

您好,我正在尝试在后台运行一个服务,当应用程序被任务管理器销毁时它不会停止。该服务的想法是每隔“x”分钟验证我在服务器中获得的数据库中是否有新插入。

即使我关闭应用程序,该服务也运行良好,但是当我使用任务管理器销毁我的应用程序时,所有线程也都关闭了。

所以我想知道是否可以运行一个永远在后台询问的线程,除非用户在应用程序本身中取消它,忽略任务管理器造成的破坏,所以将来我可以使用通知栏告诉用户数据库中发生了新的插入。

尝试过:

public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub

askServer(); // i made a timertask that ask every "x" minute


return START_STICKY;
}

正如我所读到的,如果 START_STICKY 因某种原因被杀死,它应该再次运行该服务,并且我知道这是可以完成的,因为某些应用程序被任务管理器关闭,但仍然可以从它那里收到 Whatsapp、bbms 等通知。如果我有任何错误,请告诉我,感谢您的阅读!

<小时/>

更新:我并没有试图违反 Android 的任何法律或安全规则,也没有试图忽略设置中应用程序的停止服务选项。我希望在我的情况下监听新传入“事件”插入的服务在用户使用按主页一段时间后出现的界面后继续运行:

enter image description here

<小时/>

更新:很抱歉谈论太多这个应用程序,但这是我可以用作示例的应用程序。在 Whatsapp 中,当我通过上面显示的界面关闭应用程序时,进程和服务被终止,但几秒钟后它们重新启动,这正是我想要做的,让用户了解数据库事件。通过设置,您仍然可以毫无问题地停止服务,甚至我可以将选项放在应用程序本身中以停止通知。

OnDestroy() 方法中的错误实现调用是否是服务的实例,因此它会在销毁后重新启动?

<小时/>

更新:关闭应用程序后,看起来我的服务仍在后台运行。我只需要致力于我的服务设计,不要浪费电池生命周期和资源。另外,我使用 log.i() 来检查服务是否正在运行,看起来当主进程关闭时我不能使用日志或 toast 只是通知(仍未实现),因为服务正在运行只是不会显示在记录。

<小时/>

更新:现在正在使用 startForeground(0, null) 进行工作。将来我将发送一条通知,以显示数据库上的事件何时发生,构建它并调用 startForeground(1, notification)。

最佳答案

对于服务,请查看“设置”->“应用程序”->“服务”。并查看它是否正在运行。 但是,设计不当的服务可能会更频繁地运行或执行同步操作。所以是的,这是可能的。

关于java - 应用程序被任务管理器杀死后,该服务是否仍然可以运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com