私のアプリケーションに一連のアクティビティがあり、ブラウザのアクティビティを開くシナリオがあります。ブラウザアクティビティはユーザを認証し、カスタムスキーム(myapp:// finished)でURLにコールバックします。ブラウザアクティビティを起動した後で以前のアクティビティを表示しますか?
インテントフィルタは、既存のアクティビティの1つで表示をトリガするために使用されます。私は、基本的には、ブラウザのアクティビティが開始される前に表示されたアクティビティにアプリケーションを戻すことを望みます。
問題は、ブラウザのアクティビティが新しいタスクを作成するため、ブラウザがコールバックしてアクティビティが読み込まれたときに新しいインスタンスがブラウザのタスクに作成され、アプリケーションのオリジナルタスクが作成されないということです。この結果、私の活動が再現されます。
Task (created by my app) 1) Activty 1 2) Activty 2 Task (created by the browser) 3) Browser Activity 4) Activity 2 (new instance)
私が代わりにそれらを再作成の既存の活動を再開するために使用することができますが、それらは、ブラウザがに制限された後に作成された新しい意思として動作しないフラグがあることを承知していますブラウザータスクスタック。
私はSocalLibを使用しており、Webブラウザアクティビティを作成しています。だから、私はそれがどうやって行うのかを制御することはできない。私は認証ロジックのいくつかを自分で書く必要があるかもしれないようです。 – Camsoft