可能重複Deep linking and multiple app instances。私はアプリでDeep Linkingを実装しています。私はマニフェストで定義された意図を扱うランチャーとMainActivityあるスプラッシュ活性を有する:AndroidディープリンクとsingleInstance/singleTask
<application
android:name=".MyApplication"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@drawable/app_logo"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/AppTheme">
<activity
android:name=".ActivitySplash"
android:configChanges="orientation|screenSize"
android:label="@string/app_name">
<intent-filter>
<!-- Launcher activity -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityMain"
android:alwaysRetainTaskState="true"
android:configChanges="orientation|screenSize"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<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:host="www.mywebsite.com"
android:pathPrefix="/something"
android:scheme="http" />
</intent-filter>
</activity>
<activity
android:name=".ActivitySignIn"
android:configChanges="screenSize|orientation" />
<activity android:name=".ActivitySignUp" />
</application>
私はonNewIntent()を処理するために起動モードsingleTaskを設定しています。今私が達成したいのは、ユーザーがDeepLinkingからアクティビティを開き、MainActivityですでに実行中のタスクがある場合、現在のタスクをキャンセルして新しいタスク(深いリンクからのものです)を開始するかどうかをダイアログに表示します。問題は、MainActivityから別のアクティビティを開いて、DeepLinking Intentからユーザーが来た場合です。その後、2番目のアクティビティを終了し、MainActivityを直接開きます。私が達成したいのは、アプリ/アクティビティが実行されていない場合、DeepLinkのインテントがそのまま開いていることです。そして、もしactivity/appがすでに実行されているなら、現在のタスクを閉じてDeepLinkタスク/インテントを実行するようにユーザーに促します。
android:launchMode = "singleTask"の代わりに、このandroid:launchMode = "singleInstance"を使用してください。それが動作することを願っています。 –
私は前にsingleInstanceを使用していました。その場合、アプリを再開してアプリアイコンをタップして再び開くと、最後の状態を表示する代わりにスプラッシュが最初に表示されます。また、私はすべてのアクティビティ読み込みで奇妙なアニメーションを取得するには、singleInstanceを使用します –
マニフェスト全体を投稿します –