У меня проблема, когда в backstack присутствуют несколько экземпляров действия.
например.
Стек: A> B> C
Нажмите Домой и используйте другие приложения, затем перезапустите мое приложение
Стек: A> B> C> A
Я ожидаю, что мое приложение возобновит работу с действием C, что в большинстве случаев происходит, но иногда оно возобновляется с действием A, а затем, когда я нажимаю назад, оно переходит к действию C.
Я знаю, что эта проблема вызвана не тем, что Android убивает мое приложение, как если бы это было так, оно возобновилось бы с действием A в качестве корневого.
Я попытался изменить атрибут launchMode на singleTask и singleInstance, но это приводит к тому, что действие A возобновляется как корень, а это не то поведение, которое мне нужно, я хочу, чтобы оно вернулось к ранее просмотренному действию с сохранением backstack (Я понимаю, что это не всегда возможно, если ОС убивает приложение, и это нормально).
Я не верю, что установка атрибута launchMode в singleTop была бы полезной, поскольку это предотвратит ситуации A> A, но не A> B> A или A> B> C> A и т. Д.
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package=""
android:versionCode="1"
android:versionName="1.0"
android:installLocation="auto"
>
<application android:label="@string/app_name" android:debuggable="false"
android:name=""
android:icon="@drawable/icon" android:theme="@style/CustomTheme"
android:targetSdkVersion="8" android:minSdkVersion="4">
<activity android:name=".activity.A"
android:windowSoftInputMode="stateUnchanged|adjustPan"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.B"
android:screenOrientation="portrait"/>
<activity android:name=".activity.C"
android:screenOrientation="portrait" />
<activity android:name=".activity.D"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<activity android:name=".activity.E"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<service android:name=".service.S" />
<uses-library android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="4"
android:targetSdkVersion="8"
/>
<supports-screens
android:largeScreens="false"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Любой совет будет принята с благодарностью
David