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

Bin*_*bik 11 android

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

为了您的信息:我已经将IntentService子类化.

谢谢你的帮助.

Binabik

Bob*_*ke4 15

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

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

  • 谢谢你的帮助.我再次检查它,现在我明白使用IntentService是一个坏主意,因为从onHandleIntent()返回后,IntentService会自动停止.我甚至在文档中发现:"IntentService执行以下操作:[...]在处理完所有启动请求后停止服务,因此您永远不必调用stopSelf()." 我将尝试使用"正常"服务. (8认同)