我是Android開發新手。我試圖展示一個ProgressDialog
。我看到很多教程,說爲顯示對話框必須使用線程。正如你可以看到snippet代碼正在使用線程。即使使用線程,ProgressDialog也不起作用
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
refreshFromFeed();
} catch (InterruptedException e) {
e.printStackTrace();
}
setContentView(R.layout.activity_main);
}
private void refreshFromFeed() throws InterruptedException {
ProgressDialog dialog = ProgressDialog.show(this,"Loading","Wake up after some sleep");
Thread th = new Thread(){
public void run(){
Log.d("TimeFrom", String.valueOf(System.currentTimeMillis()/1000));
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.d("TimeTo", String.valueOf(System.currentTimeMillis()/1000));
}
};
th.start();
dialog.dismiss();
}
protected void onRefresh(View view) throws InterruptedException {
refreshFromFeed();
}
日誌顯示它花了5秒,但是,我看不到屏幕上有任何對話框,我可以在屏幕上做任何事情。即使我在物理設備上使用。我使用了調試模式。沒有例外。
onRefresh
是onClick
一個事件,它的XML聲明。
你說得對。我應該改變dismiss()方法。然而,它不工作:( –
添加dialog.show();在威脅th –
謝謝,它工作得很好 –