When I run a code below, application does not fall:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
final Button b = (Button)findViewById(R.id.button1);
new Mt(b).start();
}
And this code falls (when i click on the button1 with error "CalledFromWrongThreadException"):
@Override
protected void onCreate(Bundle savedInstanceState) {
....
final Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
new Mt(b).start();
}
});
}
Where Mt class is
class Mt extends Thread{
Button b;
Mt(Button b){
this.b=b;
}
@Override
public void run() {
b.setText("4");
}
}
Why the first example does not fall with error "CalledFromWrongThreadException" ?