1

適切なタスクスタックと、ディープリンク実装中の前面への移動に問題があります...次のように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"ため、親があり、親がありません。ほとんどすべてのインスタンスの下部にも関連記事が配置されているため、それ自体 (新しいインスタンス) と呼ばれ、すべての記事が新しい「ウィンドウ」に表示されるはずです。ActivityWebView

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チェックインしたりすることさえできない場合、この動作で何ができますか?onCreateActivity

4

0 に答える 0