了解Android中的线程(从另一个线程更新UI)

问题描述 投票:0回答:1

我试图理解android中的线程。众所周知,我们无法从后台线程更新视图。我试图理解不同的案例,并遇到了下面的案例。当我单击“开始工作”按钮时,我创建了一个线程,5 秒后我更改了该线程中的 textview 值。当我从另一个线程而不是 UI 线程更新视图时,为什么它工作正常并且应用程序没有崩溃?谁能解释一下吗?

Here's image of code Here's image of code --------------------------------------ds

android ui-thread android-threading
1个回答
0
投票

该应用程序可以正常工作,因为您是从相同的上下文(相同的内存空间)更新它。如果您有一个服务可以“以某种方式”直接与您的可见应用程序内容进行交互,例如通过将应用程序上下文传递给该服务,那么它就会崩溃。例如,您不能在服务中使用 Toast 消息,因为即使使用 getApplicationContext(),服务的上下文也代表操作系统而不是您的应用程序。不过,您可以使用通知,因为可以从操作系统获取通知。

© www.soinside.com 2019 - 2024. All rights reserved.