【发布时间】:2017-02-08 09:46:33
【问题描述】:
我是 Android 开发的新手。我正在尝试显示 ProgressDialog。我看到很多教程说显示对话框必须使用线程。如您所见,sn-p 代码正在使用线程。
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 上声明的事件。
【问题讨论】: