今天,我在玩随机的东西时发生了一些奇怪的事情。我的代码如下所示,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = (TextView) findViewById(R.id.txtName);
new Thread() {
@Override
public void run() {
for(int i=0; i<100; i++){
textView.setText("Hello I am fine" +i);
textView.setTextColor(Color.RED);
// Toast.makeText(getApplicationContext(), "Hello I am fine", Toast.LENGTH_LONG).show();
}
}
}.start();
((TextView) findViewById(R.id.txtName)).setText("Hello");
}
此代码工作正常,但从技术上讲它不应该工作。因为我们无法从线程更新 UI,所以我无法理解为什么这段代码有效。请告诉我为什么这段代码有效。
但是当我在线程中吐司时它开始崩溃,所以我的问题是为什么从线程更新 textview 是有效的。
谢谢