ProgressDialog&asynctaskを使ってバックグラウンド処理してから新しい画面に移動する
これもなかなか上手くいきませんでした。
アラートダイアログをカスタマイズしたときも似た様な感じでエラーになってましたが・・・。
やりたかった処理。
ProgressDialog(ぐるぐる回るタイプ)を表示
↓
WebServiceを使ってデータ検索
↓
検索処理終了後、ProgressDialogを終了
↓
検索結果を表示する画面を表示(画面移動)
ProgressDialogを表示中、別スレッドで本処理(この場合検索処理)を行います。
最初はこちらを参考に実装してみました。
途中までは上手くいくのですが、handleMessage内でintentを使って別画面に移動しようとするとエラーになります(;><)
どうしても解決できないので今度はasynctaskを使ってbackGround処理をするクラスを作成。
こちらのサイトを参考にしました。
onPostExecuteでやはり画面移動しようとするとエラー・・・。
こりゃあ別スレッドに対して現在表示中のActivityを渡すとダメなのかな??
と思いcallBackを作成してasynctaskに引き渡してみました。
今度参考にさせていただいたサイトはこちら。
callBackで処理が戻ってきたときのthisは間違いなく表示中の画面のActivityのハズ。
そしてcallback内で画面移動するように実装したら、
おお、上手く画面移動ができました!!(゚∀゚)
しかし何故別スレッドに渡したActivityからだとうまく画面遷移ができないんでしょうねえ????
そこは解決できませんでした・・・(´・ω・`)