Android 当活动从另一个启动时调用服务onDestroy()

Android 当活动从另一个启动时调用服务onDestroy(),android,android-intent,Android,Android Intent,首先,抱歉我的英语不够好。我的申请有一些问题。 开始时,我的应用程序有多个活动和一个服务,自第一个活动执行以来,该服务在后台工作。如果我按下根活动上的后退按钮,我将退出应用程序,但服务将继续工作。然后,我回到应用程序中,服务工作得非常好。当我按下一个按钮退出应用程序(在那里,我停止服务并主要完成根活动),然后毫无问题地退出,当我想再次进入应用程序时,服务启动,但如果我想切换到另一个活动(没有serviceConnection),我的服务将被称为onDestroy()没有任何理由的方法。我不知道如

首先,抱歉我的英语不够好。我的申请有一些问题。 开始时,我的应用程序有多个活动和一个服务,自第一个活动执行以来,该服务在后台工作。如果我按下根活动上的后退按钮,我将退出应用程序,但服务将继续工作。然后,我回到应用程序中,服务工作得非常好。当我按下一个按钮退出应用程序(在那里,我停止服务并主要完成根活动),然后毫无问题地退出,当我想再次进入应用程序时,服务启动,但如果我想切换到另一个活动(没有serviceConnection),我的服务将被称为onDestroy()没有任何理由的方法。我不知道如何继续,因为在这种情况下通常的执行方式是服务继续作为第一种情况工作


非常感谢。

onDestroy打电话来肯定是有原因的

在《开发人员指南》中“服务”的第一部分中,您可以阅读以下内容:

多个组件可以一次绑定到服务,但当所有组件 如果解除绑定,服务将被破坏

因此,如果所有组件都与服务解除绑定,服务将被销毁。当您输入未绑定到服务的活动时,服务将被销毁


我想知道为什么您不希望您的服务被破坏,因为您在“另一个”活动中不需要它?

您的问题需要“您做了什么”支持,因为它非常模糊。目前我无法用代码支持我的问题,但我稍后会尝试提供。你需要什么?现在,我想知道你在这种情况下会如何应对。我想向您提供的服务是使用startService(intent)方法从我的CustomApplication构造函数中的START-STICKY代码启动的。您好,谢谢您的回复。我需要的服务活动,因为在后台,它必须不断收到来自服务器的信息,不时。你的理论离问题越来越近了,但有一个问题,为什么在按下退出按钮之前的第一个循环中,我可以无限制地进入活动并且服务继续工作,而在按下退出按钮并重新进入应用程序之后,在服务调用onDestroy()的同一活动中?当所有组件解除绑定时,服务被破坏。因此,当对服务调用onDestroy时,很可能会对绑定到服务的活动调用onDestroy。如果将调试消息放入生命周期方法(包括活动名称!),您可以看到正在发生的情况。再次感谢您,LJoose,我将尽快调试生命周期方法,但我可以说,从现在开始,当我切换到另一个无服务限制的活动时执行的最后一个生命周期方法是onStop()根活动的方法,它的服务范围是有限的。