我从许多教程和在线资源中读到,我们无法访问主线程以外的UI元素。在哪里,我们可以使用处理程序,runOnUiThread或AsyncTask来访问UI元素。但是,我在下面的代码中有一个问题。
public class MainActivity extends Activity {
ProgressBar progress;
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progress = (ProgressBar) findViewById(R.id.progreeBar);
text = (TextView) findViewById(R.id.loading);
Thread thread = new Thread(new myThread());
thread.start();
}
public class myThread implements Runnable{
@Override
public void run() {
progress.setProgress(50);
text.setText("counter: "+50);
}
}
}
在上面的代码中,我可以从另一个线程访问UI元素,而无需使用任何处理程序,runOnUiThread或AsyncTask。我很好奇为什么我没有从主线程外部访问UI元素时出错?