Как сказал API, метод post () должен вызываться в цепочке, к которой он прикреплен, но происходят некоторые странные вещи, которые я не могу объяснить!
код:
public class ProgressBarActivity extends Activity {
private final static String TAG = "ProgressBarActivity";
private Runnable test = new Runnable(){
@Override
public void run() {
try {
Thread.sleep(10000);
Log.i(TAG,"Thread---->"+Thread.currentThread().getId());
Log.i(TAG,"Thread---->"+Thread.currentThread().getName());
} catch (InterruptedException e) {}
}
};
private Handler handler = new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler.post(test);
this.setContentView(R.layout.progress_bar_layout);
Log.i(TAG,"Activity--->"+Thread.currentThread().getId());
Log.i(TAG,"Activity--->"+Thread.currentThread().getName());
}
}
Когда я устанавливаю приложение в эмулятор с помощью eclipse, происходит следующее: сначала печатается текст в методе onCreate (), а через 10 секунд печатается текст в методе run ()! Результат как ниже: кто-то знает почему?
06-04 14: 13: 09.964: INFO / ProgressBarActivity (366): действие ---> 1
06-04 14: 13: 09.964: INFO / ProgressBarActivity (366): активность ---> главная
06-04 14: 13: 20.070: INFO / ProgressBarActivity (366): Тема ----> 1
06-04 14: 13: 20.070: INFO / ProgressBarActivity (366): Тема ----> главная