2014年2月22日土曜日

Android - startActivityForResult()とsingleTask

startActivityForResult()でハマったので、メモ。

startActivityForResult()でブラウザーを立ち上げて、閉じたときの結果を取得したいと思っていたのですが、

android:launchMode="singleTask"

で、起動しているActivityからstartActivityForResult()でブラウザーを立ち上げると、すぐにonActivityResult()に結果が返ってくるという事態に陥りまして、あれこれ調べていたら、どうもそういう仕様のようでした。

ちなみに、帰ってくる結果は、

RESULT_CANCELED

です。

実機でデバッグしていた時には、ちゃんと閉じたタイミングで結果が返ってきていたんですが、エミュレーターでは、すぐに結果が返ってきます。

「こういう動きが違う時には、ダメな方を採用する。」

さて、新たなカラクリを考えないと。
ほかにブラウザーを立ち上げて、閉じたときの結果を取得する方法ってあるかなぁ~。


参考サイト:
Android Up の振る舞いパターンを実装する

0 件のコメント:

コメントを投稿