2011/04/25

AsyncTaskのダイアログ表示時の問題点

AsyncTaskのダイアログを表示しているときに端末の画面を回転させると必ずバグる。

どうやらここが原因らしい
  1. @Override  
  2. protected void onPostExecute(String result) {  
  3.   progressDialog.dismiss(); //←ここ  
  4.   //~  
  5.   //UIスレッドでの描画処理等  
  6.   //~  
  7. }  
端末の向きを回転させると、progressDialogが破棄される。
けれどその後にprogressDialog.dismiss();で存在しないものを解除しようとするから、
NullPointerExceptionが走って強制終了する。

で、自分なりの解決策は、任意のアクティビティでセンサによる画面の回転をさせないようにした。

縦横を固定するのは嫌だったので。

実装方法は簡単で、AndroidManifest.xmlのアクティビティのステータスに次のように書く。
  1. android:screenOrientation="nosensor"  
他にも色々対策はありそうだけど今はこれ。

0 件のコメント:

コメントを投稿