2012-02-16 67 views
0

当由于内存不足而调用服务的onDestroy时,我应该做一些事情,例如告诉工作线程他们应该结束工作,然后等待他们退出,然后让系统杀死主机进程?如果是这样,系统允许我等待多长时间?我应该让工作线程在任何时候尽快结束自己吗?在Android中服务即将死亡时执行线程清理

还是我完全错了?


或者,也许我应该问:

哪里是清理工作线程的最安全的或最佳点?或者什么是最安全或最好的方式。或者根本就没有这种东西,而且随时准备在不通知的情况下杀死一个线程?

+0

onDestroy将是我的选择。 – Ruuhkis 2012-02-16 07:23:23

回答

0

IIRC生命周期方法只会让您等待1-2秒,然后显示“活动无响应”消息。一般来说,你不能等待这些方法中的任何事情。

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

我建议您可能想暂停onPause(),当应用程序不再处于前台时,或者至少在onStop()时应用程序不再可见时发生。

+0

嗯...服务 – BlueWanderer 2012-02-16 08:43:49

+0

啊大写-S'Service',是的,它是'onDestroy()'然后。 – 2012-02-16 09:29:17

+0

据说onDestroy不保证被调用。这是真的吗?如果不是这样,我需要等多久才能从onDestroy返回,我的意思是“如果我可以等待一些冗长的IO操作完成,或者我应该放弃它们?” – BlueWanderer 2012-02-16 10:16:32