小编Vla*_*kiy的帖子

没有错误"只有创建视图层次结构的原始线程才能触及其视图",无视延迟更新视图

我遇到了一个有趣的问题.如果您在onCreate/onStart/onResume活动方法中编写以下代码:

final Button myButton = (Button)findViewById(R.id.myButton);
final TextView myTextView = (TextView)findViewById(R.id.myTextView);
final Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        myTextView.setText("Hello text");
    }
});
myButton.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View v) {
        thread.start();
    }
});
Run Code Online (Sandbox Code Playgroud)

要么:

final TextView myTextView = (TextView)findViewById(R.id.myTextView);
final Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.currentThread().sleep(500);
        }
        catch (InterruptedException e) {
            e.printStackTrace();
        }
        myTextView.setText("Hello text");
    }
});
thread.start();
Run Code Online (Sandbox Code Playgroud)

应该如何,抛出一个错误

android.view.ViewRoot $ CalledFromWrongThreadException: …
Run Code Online (Sandbox Code Playgroud)

multithreading android view ui-thread

8
推荐指数
1
解决办法
2682
查看次数

标签 统计

android ×1

multithreading ×1

ui-thread ×1

view ×1