Android为什么这不会抛出错误的线程异常?

Android为什么这不会抛出错误的线程异常?,第1张

概述我的印象是只能从主线程中 *** 纵视图…但是,为什么这不会崩溃: public class MainActivity extends Activity { TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS 我的印象是只能从主线程中 *** 纵视图…但是,为什么这不会崩溃:

public class MainActivity extends Activity {    TextVIEw tv;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        tv = new TextVIEw(this);        tv.setText("original text");        setContentVIEw(tv);        new Thread(new Runnable() {            @OverrIDe            public voID run() {                tv.setText("trollollolol i should dIE here but i won't.");            }        }).start();            }}

我跑上了设备&模拟器,都工作得很好,我看到文本的变化.这是怎么回事?

我还检查了线程ID,后台线程是DEFINITELY而不是主线程(threadID = 1)

解决方法 AndroID实际上并没有阻止您从主线程外部更新UI.这只是一个滴答作响的定时炸d.如果主UI线程当时没有更新UI,那么你的线程就可以做到. 至少那是我的理解.我不是100%肯定知道,但我已经(不小心)从主UI线程之外更新UI.有时它会工作,有时却不会.但作为一种好的做法,我会使用异步任务. 总结

以上是内存溢出为你收集整理的Android为什么这不会抛出错误的线程异常?全部内容,希望文章能够帮你解决Android为什么这不会抛出错误的线程异常?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1125103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存