2017-12-13 17 views
0

私はbrach.ioディープリンクの実装をアンドロイドのアプリケーションに統合し、ランチャー/メインアクティビティの "singleTask"にlauncherModeを作成しました。ここでの問題は、ブランチリンクをタップしてスタックをlauncherActivityにクリアし、その上にブランチデータ処理アクティビティを追加することです。ブランチリンクをタップしてアプリケーションの新しいインスタンスを開きます

例:

  • がsingleTaskとルート/ laucher活性です。
  • は、ブランチデータに基づいて何らかの操作を実行しています。
  • に移動しました。
  • アプリを最小化し、ブランチリンクでタップします。
  • そのアプリケーションを開いてスタックから活性Bをクリアし、活性Bの上部にC活性を追加するのではなく、新しいactivitiy Cを加えます。

  • 私がsingleTask以外のランチャーモードをアクティビティに変更すると、アプリの複数のインスタンスが作成されます。

答えて

0

postで同様の議論を参照してください。

残念ながら、これはデフォルトのAndroidの動作です。また、アプリケーションの複数のインスタンスを避けるために、深いリンクアクティビティのlaunchModeをsingleTaskに定義することも重要です。

PS:ブランチアンドロイドSDKインテグレーションhereのリファレンスドキュメントを参照できます。

+0

応答のおかげで、同じスタックの上にアクティビティを追加する可能性はありますか? – san

+0

@サン私はそこにいるとは思わない。これは、残念ながらsingleTaskのデフォルト動作です。アクティビティー(singleTaskとして定義されている)がアクティビティー・スタックで使用可能で、同じアクティビティーが再度呼び出されると、そのシングル・タスク・アクティビティーの上に配置されたすべてのアクティビティーが適切な方法(ライフサイクル・トリガー)で自動的に破棄され、スタックの上に。 [Here](https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en)は、さまざまな起動モードを理解するための参考資料です。 –

+0

@sanまた、ディープリンクが適切に機能するためには、アプリの複数のインスタンスを避けるために、アクティビティをsingleTaskとして定義する必要があります。 –

関連する問題