我有變量int myInt的基本問題。在void aktualizujRynek()中,我爲myInt賦值2。在void setImage()中,變量的值爲0,而不是2.爲什麼?如何在另一種方法中使用變量?
public class MainActivity extends AppCompatActivity {
int myInt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aktualizujRynek();
setImage();
}
public void aktualizujRynek(){
final Thread thread1 = new Thread(new Runnable() {
myInt = 2;
});
thread1.start();
}
public void setImage(){
if (myInt ==2){
//do something
}
}
}
目前尚不清楚什麼是你瓦納實現...的時候,你使用的變量有值0。如果你在線程結束後使用值,你應該使用回調。 AsyncTask已經將它重新命名爲UI線程......顯然,等待線程在onCreate內部結束是一個可怕的想法...... – Selvin
所以我不能在線程中訪問myInt? – Tom
問題是當你在另一個線程的執行時間wana在當前線程中訪問它...當變量發生變化時,你需要以某種方式通知當前線程從另一個線程... – Selvin