在Android中,当服务即将被终止时,是否执行线程清理
在该方法中,当由于内存不足而调用服务的onDestroy时,我是否应该告诉工作线程应该结束工作,然后等待它们退出,然后让系统终止宿主进程?如果是,系统允许我等待多长时间?我应该使工作线程能够在任何时候尽可能快地结束它们自己吗 还是我完全错了在Android中,当服务即将被终止时,是否执行线程清理,android,multithreading,service,ondestroy,Android,Multithreading,Service,Ondestroy,在该方法中,当由于内存不足而调用服务的onDestroy时,我是否应该告诉工作线程应该结束工作,然后等待它们退出,然后让系统终止宿主进程?如果是,系统允许我等待多长时间?我应该使工作线程能够在任何时候尽可能快地结束它们自己吗 还是我完全错了 或者我应该问: 清理辅助线程的最安全或最佳点在哪里?或者什么是最安全或最好的方法。或者根本没有这样的事情,线程应该随时准备在没有通知的情况下被终止?IIRC生命周期方法只允许您等待1-2秒,然后显示“活动未响应”消息。通常,在这些方法中,您不能等待任何结果
或者我应该问:
清理辅助线程的最安全或最佳点在哪里?或者什么是最安全或最好的方法。或者根本没有这样的事情,线程应该随时准备在没有通知的情况下被终止?IIRC生命周期方法只允许您等待1-2秒,然后显示“活动未响应”消息。通常,在这些方法中,您不能等待任何结果
onDestroy
是最后一个生命周期方法,当应用程序仅在后台时不会调用它。是否希望线程在后台运行?这取决于你的应用程序,但这通常是不好的行为
我建议您可能希望在应用程序不再位于前台时暂停
onPause()
,或者至少在应用程序不再可见时暂停onStop()
。onDestroy将是我的选择。啊,capital-S服务
,是的,它是onDestroy()
那么,据说onDestroy不能保证被调用。这是真的吗?如果这不是真的,我能等多久才能从onDestroy返回,我的意思是“如果我能等一些冗长的IO操作完成,或者我应该放弃它们?”