我一直在看很多关于线程主题的文章,虽然也许我理解它,但它并没有那种感觉。如果服务已经在后台,因为它没有UI,为什么人们会说在服务中放置一个线程来创建后台任务区?主活动中还有一个主UI线程。这个代码究竟在哪里?
答案 0 :(得分:1)
服务本身不是一个主题。它在与其父应用程序相同的进程中运行。因此,如果您的代码在服务中运行,并且有一些处理可能会阻止它,您可以考虑将其放在一个单独的线程中,以便不阻止它执行的其他操作。
对于UI线程,What is the Android UiThread (UI thread)可能提供了一个很好的解释(第一个答案)
答案 1 :(得分:0)
仅仅因为它没有任何活动,并且你不能看到它,并不意味着当前没有执行代码。多线程允许您同时处理需要很长时间的任务。
例如,您正在等待从服务器接收响应。此时您的代码处于HOLD状态,其他所有代码都在等待此响应。但是等等,你不希望用户只是坐在那里盯着冻结的屏幕,对吧?您希望用户能够做其他事情或者至少看到一些进展,对吧?这就是多线程所允许的。在此示例中,等待从服务器下载数据,并同时更新主UI线程上的进度条。