android - 服务和处理程序之间的关系

标签 android multithreading asynchronous

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

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

最佳答案

Handler 是 Thread 的一部分,Thread 是 Process 的一部分。当操作系统终止服务时,它会清除整个进程。

关于android - 服务和处理程序之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521388/

相关文章:

android - 实现 Google Cards 风格的最佳方式

c# - 主进程在启动另一个线程后被卡住

jquery - jQuery 中的异步 foreach

java - 如何并行调用两个返回 DeferredResult<> 的方法?

android - 如何将Arduino和Android连接到同一服务器?

java - 使用 FFT 匹配两个音频文件 (Android Studio)

c++ - 实现信号量

ios - 如何等待 Swift 3 中的 Firebase 异步读取调用?

android - 注册到 GCM 推送通知后如何重新加载 Android Webview

multithreading - 在 Google Appengine 中启用线程安全会带来哪些问题?