2010-01-13 70 views
9
保持任務的活動堆棧重啓後

我的應用程序有兩個活動,我在這個順序啓動:安卓:從家裏

HOME > A > B 

現在我按HOME並推出「A」一次。我想在「A」的頂部看到活動「B」,但是我得到「A」 - 因此活動堆棧被清除。

清單:

<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> 

我該怎麼辦?

+0

你確定你得到A而不是B,或者你的'android:label'是'.activity.B'在問題中的拼寫錯誤? – 2010-01-13 23:49:58

+0

啊,這是一個.activity.B標籤的錯字(只是固定的)。我仍然看到A,而期望B. – alex2k8 2010-01-14 00:12:15

+1

你想要的是標準行爲,所以也許在別處有一些小的錯字或錯誤。在測試之前嘗試「退出」應用程序,即啓動應用程序並向後按,直到堆棧清除,然後重新啓動? – James 2010-01-14 00:39:24

回答

10

我想通了,什麼是錯的...

的配置是正確的,但我開始應用調試從Eclipse的,這是問題。

案例#1

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

案例#2

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

案例#3

A > B > HOME > A 
Get: B (stack preserved) 
+0

啊,有趣!已經有很多在過去兩天這樣的問題,所以也許這對他們中的一些:) – 2010-01-14 00:57:29

+0

請注意,此行爲已固定在0.9.6版本的ADT的Eclipse插件的答案。您現在可以高興地從Eclipse啓動您的應用程序,並獲得與設備上相同的行爲。 – 2010-03-14 14:48:04

+0

謝謝你的信息,克里斯托弗! – alex2k8 2010-03-16 13:51:56

2

我們發現這是一個已知的Android的問題 - 它一直正式跟蹤herehere

儘管他們說(沒選中)已經固定在0.9.6版本的ADT Eclipse插件我仍然可以在應用程序OTA升級過程中看到這個真實的設備上。至少這發生在Android 1.6,2.0.1,2.1和2.2上。

我們已經創造了這個問題的解決方法。檢查出來here

1

它並不複雜。你只需要操縱清單。

AndroidManifest.xm

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

閱讀有關 '機器人:出口' & '的Android版本:alwaysRetainTaskState' 在這裏:

android:exported

android:alwaysRetainTaskState