私のアプリケーションには複数のアクティビティがあり、メインアクティビティ(A)はlaunchMode singleTopにあり、すべてのアクティビティはsingleInstanceモードです。最近のアプリケーション画面からsingleInstanceアクティビティを開いたときにタスクスタックを保持
私はこのようにナビゲートする場合illimitedナビゲーション を防止するためsingleInstanceを選択しました:A - > B - > C - > B - > C - > B - > C バックアクションが行います:C - > B - > A
期待どおりに動作します。
問題:私がA - > Bをナビゲートすると、私はアプリケーションrecents画面を開いて、自分のアプリケーションをクリックすると、アクティビティbが表示されますが(ok)、アプリケーションが終了してアンドロイドホームに戻ります最近のアプリケーション画面からBを開くことができます)
最近のアプリケーションメニューからアプリケーションを開くと、タスク履歴が保持されないのはなぜですか?あなたの助けのための
<activity
android:name="A"
android:label="@string/app_name"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResultsActivity" />
</activity>
<activity
android:configChanges="orientation|screenSize"
android:name="B"
android:label="B"
android:launchMode="singleInstance"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:configChanges="orientation|screenSize"
android:name="C"
android:label="C"
android:launchMode="singleInstance"
android:theme="@style/AppTheme.NoActionBar">
</activity>
おかげ
これは「期待どおりに動作する」可能性がありません。 'taskAffinity'も設定しないと、' launchMode = "singleInstance" 'を設定することは無意味です。あなたはA→B→C→B→Cへの移行方法を投稿してください。それぞれの遷移に対して 'startActivity()'を呼び出すだけなら、あなたの仕事にはBとCの複数のインスタンスが確実に存在します。 –