我在显示 ProgressDialog 时遇到了一些问题。我有一种从网站上抓取信息的方法,我想向用户显示某种“正在加载”窗口,而不是让应用程序看起来像是在工作时挂了一两秒钟。
当我不实现 ProgressDialog & Thread 时,一切正常,但是一旦我尝试实现 Thread 来完成繁重的工作,AboutMe 视图窗口就为空。
我有一个带有注册 OnClickListener 的 TextView 的 MainActivity。
单击 TextView 会执行以下操作:
startActivity(new Intent(getBaseContext(), AboutMe.class));
这是 AboutMe.class 活动的大部分内容:
public class AboutMe extends Activity {
private ProgressDialog aboutMeProgressDialog;
private String htmlAboutMe = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
getAboutMe(); // Get information from Internet
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFeatureDrawableResource(Window.FEATURE_NO_TITLE, android.R.drawable.ic_dialog_alert);
setContentView(R.layout.abutme);
TextView tvAbout = (TextView) findViewById(R.id.aboutMe);
tvAbout.setText(Html.fromHtml(htmlAboutMe));
}
private void getAboutMe() {
try {
aboutMeProgressDialog = ProgressDialog.show(AboutMe.this, "", "Loading");
new Thread() {
@Override
public void run() {
try {
/** Code to scape webpage **/
}
catch (Exception exp) {
exp.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}.start();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private final Handler handler = new Handler() {
@Override
public void handleMessage(final Message msg) {
aboutMeProgressDialog.dismiss();
}
};
我显然错过了一些微不足道的事情,但我已经尝试了谷歌几乎所有我能想到的东西,但仍然无法让 Thread 与 ProgressDialog 一起为我工作。