Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,当服务即将被终止时,是否执行线程清理_Android_Multithreading_Service_Ondestroy - Fatal编程技术网

在Android中,当服务即将被终止时,是否执行线程清理

在Android中,当服务即将被终止时,是否执行线程清理,android,multithreading,service,ondestroy,Android,Multithreading,Service,Ondestroy,在该方法中,当由于内存不足而调用服务的onDestroy时,我是否应该告诉工作线程应该结束工作,然后等待它们退出,然后让系统终止宿主进程?如果是,系统允许我等待多长时间?我应该使工作线程能够在任何时候尽可能快地结束它们自己吗 还是我完全错了 或者我应该问: 清理辅助线程的最安全或最佳点在哪里?或者什么是最安全或最好的方法。或者根本没有这样的事情,线程应该随时准备在没有通知的情况下被终止?IIRC生命周期方法只允许您等待1-2秒,然后显示“活动未响应”消息。通常,在这些方法中,您不能等待任何结果

在该方法中,当由于内存不足而调用服务的onDestroy时,我是否应该告诉工作线程应该结束工作,然后等待它们退出,然后让系统终止宿主进程?如果是,系统允许我等待多长时间?我应该使工作线程能够在任何时候尽可能快地结束它们自己吗

还是我完全错了


或者我应该问:


清理辅助线程的最安全或最佳点在哪里?或者什么是最安全或最好的方法。或者根本没有这样的事情,线程应该随时准备在没有通知的情况下被终止?

IIRC生命周期方法只允许您等待1-2秒,然后显示“活动未响应”消息。通常,在这些方法中,您不能等待任何结果

onDestroy
是最后一个生命周期方法,当应用程序仅在后台时不会调用它。是否希望线程在后台运行?这取决于你的应用程序,但这通常是不好的行为


我建议您可能希望在应用程序不再位于前台时暂停
onPause()
,或者至少在应用程序不再可见时暂停
onStop()

onDestroy将是我的选择。啊,capital-S
服务
,是的,它是
onDestroy()
那么,据说onDestroy不能保证被调用。这是真的吗?如果这不是真的,我能等多久才能从onDestroy返回,我的意思是“如果我能等一些冗长的IO操作完成,或者我应该放弃它们?”