服务与处理程序之间的关系

时间:2011-09-22 20:54:38

标签: android multithreading asynchronous

所以,最初,我正在使用Service和TimerTask定期推送需要在我的应用程序中发送的意图。在http://developer.android.com/resources/articles/timed-ui-updates.html阅读文章后,似乎这是更好的方法。所以,现在,我的服务创建了一个处理程序并在其路上发送它。正如在文章中,我的Handler postDelayed()本身,使其有效地无限运行(直到删除小部件,在这种情况下我清除处理程序,从而终止执行)。

我的问题是,我知道在用户需要的情况下,Android可以将服务用于内存。我的处理程序是我的服务的成员变量。比方说,Android会吃掉我的服务,然后再重新启动它。据我所知,这是我的服务的一个新实例,因此新的处理程序将被实例化并在其路上发送。现在有两个处理程序在运行吗?或旧的处理程序是否收集垃圾(我认为不是因为它必须在其他地方被引用,如果它仍然有效)?或者第一个处理程序是否会以某种方式自动关闭?我不希望其中8个同时运行。

1 个答案:

答案 0 :(得分:1)

Handler是Thread的一部分,Thread是Process的一部分。当OS杀死Serivce时,它会清除整个过程。