0

欲望のWebアドレスから画像をダウンロードするための画像ダウンロードスレッドを作成しました。そのスレッドで進行状況ダイアログを使用しましたが、進行状況ダイアログが 3 秒または 4 秒後に回転せず、ハングしているようです。しかし、バックグラウンド作業は問題ありません。私の問題は、進行状況ダイアログが回っていないのは何ですか? ハングのように見えますか?このコードを開始位置で使用しています。

imageUploadhandler.postDelayed(runImageUpload, 500);
        dialog = ProgressDialog.show(AllProductActivityPictGrid.this, "",
                "Message...", true);
        dialog.setCancelable(true);
4

3 に答える 3

2

ダイアログがハングします。これは、 で をインスタンス化するHandlerと、ActivityにポストするすべてのものがHandlerバックグラウンド スレッドではなく UI スレッドで実行されるためです。

ダウンロードを行い、 で を作成しProgressDialogますAsyncTask

于 2012-07-27T06:51:08.320 に答える
1

多分あなたは見てみるべきAsyncTaskですか?

 protected void onPreExecute() {
      progressDialog=ProgressDialog.show(context,"Please Wait..","Retrieving data from device",false);
    }


  @Override
  protected String doInBackground(String... params) {

    //background stuff here

    return "";
}

protected void onPostExecute(String result) {

        progressDialog.dismiss(); 
        Toast.makeText(context, "Finished", Toast.LENGTH_LONG).show(); 

}
于 2012-07-27T08:37:28.077 に答える
0

ダウンロードが完了したら、dialog.dismiss() を使用してみてください。

Progress Dialog を呼び出すには、次のコードを使用してください。

  ProgressDialog progressDialog = new ProgressDialog(context);
  progressDialog.setMessage("Please Wait...");
  progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  progressDialog.show();

  After completion of your task call  progressDialog.dismiss();
于 2012-07-27T06:28:47.400 に答える