Android: keep task's activity stack after rest

2019-01-09 07:54发布

My application has two activities, that I start in this order:

HOME > A > B

Now I press HOME and launch "A" again. I would like to see activity "B" on a top of "A", but instead I get "A" - so the activity stack is cleared.

Manifest:

<activity android:name=".activity.A" android:label="A" android:alwaysRetainTaskState="true">
    <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:label="B">
    <intent-filter>
    </intent-filter>
</activity>

What should I do?

3条回答
不美不萌又怎样
2楼-- · 2019-01-09 08:07

It's not that complex. You just need to manipulate the manifest.

AndroidManifest.xm

<activity
     android:name=".MainActivity"
     android:alwaysRetainTaskState="true"
     android:exported="true"
     .
     .
     .

Read about the 'android:exported' & 'android:alwaysRetainTaskState' here:

android:exported

android:alwaysRetainTaskState

查看更多
手持菜刀,她持情操
3楼-- · 2019-01-09 08:17

I figured out what is wrong...

The config is right, but I started application for debugging from Eclipse, this was the issue.

Case # 1.

Debug > A > B > HOME > A
Get: A (stack is cleared)

Case # 2.

Debug > A > BACK > A > B > HOME > A
Get: B (stack preserved)

Case # 3.

A > B > HOME > A
Get: B (stack preserved)
查看更多
我只想做你的唯一
4楼-- · 2019-01-09 08:22

We have discovered this is a known Android issue - it has been officially tracked here and here.

Despite they say (did not checked) it has been fixed in the 0.9.6 release of the ADT Eclipse plugin I still can see this on a real device during the application OTA upgrade. At least this happens for Android 1.6, 2.0.1, 2.1 and 2.2.

We've created a workaround for this issue. Check it out here.

查看更多
登录 后发表回答