ProgressDialog&asynctaskを使ってバックグラウンド処理してから新しい画面に移動する

これもなかなか上手くいきませんでした。
アラートダイアログをカスタマイズしたときも似た様な感じでエラーになってましたが・・・。
  
やりたかった処理。

ProgressDialog(ぐるぐる回るタイプ)を表示

WebServiceを使ってデータ検索

検索処理終了後、ProgressDialogを終了

検索結果を表示する画面を表示(画面移動)
  

ProgressDialogを表示中、別スレッドで本処理(この場合検索処理)を行います。

最初はこちらを参考に実装してみました。
  
途中までは上手くいくのですが、handleMessage内でintentを使って別画面に移動しようとするとエラーになります(;><)
  
どうしても解決できないので今度はasynctaskを使ってbackGround処理をするクラスを作成。
こちらのサイトを参考にしました。
  
onPostExecuteでやはり画面移動しようとするとエラー・・・。
  
こりゃあ別スレッドに対して現在表示中のActivityを渡すとダメなのかな??
と思いcallBackを作成してasynctaskに引き渡してみました。
  
今度参考にさせていただいたサイトはこちら

callBackで処理が戻ってきたときのthisは間違いなく表示中の画面のActivityのハズ。
  
そしてcallback内で画面移動するように実装したら、
おお、上手く画面移動ができました!!(゚∀゚)
  
しかし何故別スレッドに渡したActivityからだとうまく画面遷移ができないんでしょうねえ????
そこは解決できませんでした・・・(´・ω・`)