【发布时间】:2013-09-28 11:03:27
【问题描述】:
我读到服务与线程不同,因为它不受当前活动的影响。但是线程是。但 Looper 也像一个不受当前活动影响的服务,它们都在后台运行。
那么,service 和 looper 的本质区别是什么……?
请帮帮我。我对这些话题完全感到困惑。
【问题讨论】:
标签: multithreading service looper
我读到服务与线程不同,因为它不受当前活动的影响。但是线程是。但 Looper 也像一个不受当前活动影响的服务,它们都在后台运行。
那么,service 和 looper 的本质区别是什么……?
请帮帮我。我对这些话题完全感到困惑。
【问题讨论】:
标签: multithreading service looper
Looper 是一个用于在队列中执行 Messages(Runnables) 的类。普通线程没有任何队列。例如,简单线程没有任何队列。它们是一次性执行的,在代码结束后,线程将被停止/杀死,它将无法运行另一条消息(可运行)。
用法 如果你想执行多个消息(Runnables),那么你应该使用负责在线程中创建队列的 Looper 类。例如。如果您正在编写一个从 Internet 下载文件的应用程序,那么您可以使用 Looper 类将所有文件放入要下载的队列中。
Service 在不同的进程中运行,如果应用程序崩溃或正在运行应用程序的进程被杀死,那么 Async Task/looper 也将被杀死,但服务不会被杀死,因为服务是在不同的进程中运行。 Looper 与 app unkike Service 运行在同一线程中。Android 也建议使用 Async 任务而不是 Loopers。
【讨论】: