写真をリモートサーバーにアップロードするために非同期タスクを使用しています。ユーザーに進行状況を表示するために、進行状況ダイアログを使用しています。この進行状況ダイアログは、非同期タスク クラスの preExecute メソッドで作成されます。
ユーザーが画面を回転すると、進行状況ダイアログは消えますが、非同期タスクはまだ実行されています。アクティビティは非同期タスクへの静的参照を保持しているため、タスクがまだ実行中であることがわかります。進行状況ダイアログを再度表示するにはどうすればよいですか? 私は次のことを試しました:
アクティビティの create メソッド:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
if(task != null) {
Status status = task.getStatus();
if(status == Status.RUNNING) {
task.updateViewContext(this);
}
}
私の非同期タスククラスのコンストラクター:
public UploadTask(UploadPicturesActivity activity) {
this.context = activity;
dialog = new ProgressDialog(activity);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
}
私の asnyc タスク クラスの preexcetue メソッド:
protected void onPreExecute() {
this.dialog.show();
}
ダイアログを再度表示しようとしています(機能しません):
public void updateViewContext(UploadPicturesActivity activity) {
this.context = activity;
dialog.show();
}
よろしく
マイケル