我构建了一个服务,它没有按预期工作,所以我调试了它。在调试过程中,我看到从onCreate()返回后直接调用服务的onDestroy()方法。当我注释掉onDestroy()中发生的清理时,服务会完成它的工作,但这不应该是我的解决方案。所以我的问题是,为什么onDestroy()这么早就调用了,为什么服务还在运行?或者如何防止在错误的时间调用onDestroy()?
供您参考:我已经将IntentService子类化。
感谢您的帮助。
Binabik
答案 0 :(得分:15)
如果您是IntentService的子类,那么您应该在服务的生命周期中使用onHandleIntent(Intent intent)。您的服务可能会快速转移到onDestroy,因为您没有onHandleIntent中的代码。虽然没有你的代码我不能肯定地说。
此外,它可能会快速转移到onDestroy,因为IntentService会自动为您提供线程,并且可能只是启动调用onHandleIntent并转移到onDestroy的工作线程。