【问题标题】:Difference between looper and a service活套和服务之间的区别
【发布时间】:2013-09-28 11:03:27
【问题描述】:

我读到服务与线程不同,因为它不受当前活动的影响。但是线程是。但 Looper 也像一个不受当前活动影响的服务,它们都在后台运行。

那么,service 和 looper 的本质区别是什么……?

请帮帮我。我对这些话题完全感到困惑。

【问题讨论】:

    标签: multithreading service looper


    【解决方案1】:

    Looper 是一个用于在队列中执行 Messages(Runnables) 的类。普通线程没有任何队列。例如,简单线程没有任何队列。它们是一次性执行的,在代码结束后,线程将被停止/杀死,它将无法运行另一条消息(可运行)。

    用法 如果你想执行多个消息(Runnables),那么你应该使用负责在线程中创建队列的 Looper 类。例如。如果您正在编写一个从 Internet 下载文件的应用程序,那么您可以使用 Looper 类将所有文件放入要下载的队列中。

    Service 在不同的进程中运行,如果应用程序崩溃或正在运行应用程序的进程被杀死,那么 Async Task/looper 也将被杀死,但服务不会被杀死,因为服务是在不同的进程中运行。 Looper 与 app unkike Service 运行在同一线程中。Android 也建议使用 Async 任务而不是 Loopers。

    【讨论】:

    • 我们可以在这种情况下使用服务还是使用 AsyncTask 类,因为 AsyncTask 类还负责同时处理多个任务..
    • 主要区别是服务在不同的进程中运行,如果应用程序崩溃或正在运行应用程序的进程被杀死,那么异步任务也会被杀死,但服务不会被杀死,因为服务是在不同的进程中运行。
    • 那么 Looper 怎么样。如果我们的应用崩溃了,looper也会崩溃吗?
    • Looper 在与 app unkike Service 相同的线程中运行,如果正在运行 app 的进程被杀死,那么 looper 也将被杀死,但服务将继续运行,因为服务在不同的进程中运行。
    • 我对服务非常清楚,非常感谢您。但我还是觉得如何决定是使用looper还是asynctask类..?你有任何网站或博客..?或者任何显示循环器工作的示例..?
    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 2010-11-29
    • 2013-09-18
    • 2011-08-21
    • 2014-12-01
    • 2012-03-19
    • 2016-05-09
    • 2010-11-29
    相关资源
    最近更新 更多