0

我对 Android 开发非常陌生。谁能帮我处理这个片段,我不知道为什么它可以完美运行,尽管我正在TextView从工作线程更新我的。当我说完美工作时,我的意思是TextView显示值计数没有任何问题。所以,我的问题是 - “是否真的可以从后台线程更新 UI,如果没有,我错了”

public class MainActivity extends AppCompatActivity {
    TextView textView ;
    private int count;
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textview);
        btn = findViewById(R.id.startbtn);
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                listen();
            }
        });
    }

    public void listen(){
        new Thread(new Runnable() {
            @Override
            public void run()  {
                long time = System.currentTimeMillis();
                while(System.currentTimeMillis()<=time +10000) {
                    count++;
                }
                textView.setText(count+"");
            }
        }).start();
    }
}
4

1 回答 1

0

利用

runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // Add UI code here

                        }
                    });

所有 UI 更新都应该在主线程上完成。

于 2020-05-01T15:59:44.977 回答