私のAndroidアプリから、デフォルトのWebブラウザーを起動して、ユーザーを確認Webページに送り、確認したら、コールバックを使用してユーザーをアプリに送り返したいと思います。
その機能は問題なく動作していますが、問題があるのは、ユーザーがWebブラウザーで自分自身を確認したくないと判断し、[戻る]ボタンをクリックしてアプリに戻るという状況を傍受することです。
startActivityForResult()を使用してWebブラウザーを起動しようとしましたが、onActivityResult()を使用してバッククリックをインターセプトできますが、何らかの理由で、ユーザーがクリックバックしたときにonActivityResult()が呼び出され、まったく呼び出されません。
問題を示す基本的なテストコードは次のとおりです。
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("MainActivity","onCreate called");
Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivityForResult(intent,101);
Log.i("MainActivity","startActivityForResult called");
}
@Override
public void onResume()
{
super.onResume();
Log.i("MainActivity","onResume called");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
Log.i("MainActivity","onActivityResult called");
}
}
このコードを実行した後の出力:
I/MainActivity(545): onCreate called
I/MainActivity(545): startActivityForResult called
I/MainActivity(545): onResume called
I/MainActivity(545): onActivityResult called
I/MainActivity(545): onResume called
次に、ユーザーがWebブラウザーからクリックして戻ると、onResume()を3回呼び出すだけです。
それで、ユーザーがブラウザからクリックバックしたときに私がどのように認識できるかについて誰かが何か提案がありますか?