Service.onDestroy()在创建后直接调用,无论如何服务都能正常工作

时间:2011-09-27 14:32:54

标签: android

我构建了一个服务,它没有按预期工作,所以我调试了它。在调试过程中,我看到从onCreate()返回后直接调用服务的onDestroy()方法。当我注释掉onDestroy()中发生的清理时,服务会完成它的工作,但这不应该是我的解决方案。所以我的问题是,为什么onDestroy()这么早就调用了,为什么服务还在运行?或者如何防止在错误的时间调用onDestroy()?

供您参考:我已经将IntentService子类化。

感谢您的帮助。

Binabik

1 个答案:

答案 0 :(得分:15)

如果您是IntentService的子类,那么您应该在服务的生命周期中使用onHandleIntent(Intent intent)。您的服务可能会快速转移到onDestroy,因为您没有onHandleIntent中的代码。虽然没有你的代码我不能肯定地说。

此外,它可能会快速转移到onDestroy,因为IntentService会自动为您提供线程,并且可能只是启动调用onHandleIntent并转移到onDestroy的工作线程。