適切なタスクスタックと、ディープリンク実装中の前面への移動に問題があります...次のようにActivity
宣言されています。
<activity
android:name=".activity.ArticleSingleActivity"
android:label="@string/app_name"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="site.com"
android:pathPrefix="/article" />
</intent-filter>
</activity>
これは、アプリ内の多くの場所 (ネイティブ ボタンまたは から) から起動できるlaunchMode="standard"
ため、親があり、親がありません。ほとんどすべてのインスタンスの下部にも関連記事が配置されているため、それ自体 (新しいインスタンス) と呼ばれ、すべての記事が新しい「ウィンドウ」に表示されるはずです。Activity
WebView
ArticleSingleActivity
そして今: アプリがバックグラウンドで実行され、アプリ マネージャーに表示されている場合、問題なく他のアクティビティの上にディープリンクが発生します。インテントには次のフラグが含まれています。
FLAG_ACTIVITY_BROUGHT_TO_FRONT
FLAG_ACTIVITY_NEW_TASK
FLAG_RECEIVER_FOREGROUND
アプリがバックスタックにない場合 (ユーザーによって削除されたとしましょう)ArticleSingleActivity
は、bred_to_front フラグなしで起動され、すべてが通常どおりに開始されますが、小さな不適切な動作が見つかりました。私が別のものに移動するとArticleSingleActivity
(たとえば、下部の関連から、またはサイドメニューから他のActivity
ものに)、ホームを押して同じディープリンクURLを開こうとすると、アプリが前面に表示されます。リンクされた記事は表示されませんがActivity
、アプリが「ホーム」になったときに一番上にありました。onCreate
また、 、onActivityReenter
またはでブレークポイントが起動していませんonNewIntent
。私の意見では、この URL に一致するバック スタックで起動されたシステムが「覚えている」Acticity
ため、アプリ全体を前面に表示するだけでActivity
、スタックからは適切ではありません (上記のような Bring_to_front フラグはありません)。
スタック上のどのアライブでもまったく呼び出されないためにIntent
、システムによって配信されたこれにカスタム フラグを設定したり、Intent
チェックインしたりすることさえできない場合、この動作で何ができますか?onCreate
Activity