ProgressDialogの表示に問題があります。ウェブサイトから情報を取得する方法があります。アプリが動作しているときに1、2秒間ハングしているように見えるのではなく、ある種の「読み込み中」ウィンドウをユーザーに表示したいと思います。
ProgressDialog&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();
}
};
私は明らかに些細なことを見逃していますが、私は考えられるすべてのことをグーグルで試しましたが、それでもProgressDialogと一緒にスレッドを機能させることはできません。