我有3個活動A,B和C.擊中後退按鈕但不殺死活性,並讓它處於返回堆棧(機器人)
我上的按鈕點擊動態膨脹活性B和用戶可以添加儘可能多的意見,他喜歡。
的操作是這樣的:
用戶看到「活動」第一進入他的詳細信息並點擊保存按鈕,我帶他去「活動B」,他補充說某些領域儘可能多的時候,他喜歡和時他再次點擊保存我將他帶到「活動C」。
現在當我在A並去B並添加一些視圖並在TextViews中輸入文本,然後點擊保存並轉到C.從C如果我回擊我看到B與所有充氣視圖完好無損並輸入很明顯,因爲它保存在Back Stack中,但是如果我通過回擊從B返回到B,所有視圖都消失了,因爲它從Back Stack中移除。
我想知道是否有可能在BackStack中僅保留一個B實例,並且在用戶返回時根本不殺死它? 我已經覆蓋後退鍵但無濟於事,因爲活動無論如何都被殺死了,有些人建議我應該將整個視圖和數據從它保存到Parcelable ArrayList並在onCreate中再次生成它們,但對我而言這並不可行,因爲我無論如何,我們可以將它保存在BackStack中。
我碰到這個指南來了在Android開發者http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html它說這些活動屬性
android:taskAffinity
android:launchMode
android:allowTaskReparenting
android:clearTaskOnLaunch
android:alwaysRetainTaskState
android:finishOnTaskLaunch
android:singleTask
android:singleInstance
但我不知道如何把他們使用。
有沒有人試過這個呢?如果是這樣,請幫我把這些碎片放在一起。
您無法保證您的應用程序的任何組件都會在任何給定的時間內存在。這包括活動和服務。如果您的應用運行的設備運行資源不足,則Android操作系統將終止任何內容以及它認爲當前未使用的所有內容。如果您接受用戶數據,那麼您必須採取措施以某種方式堅持它,而不要依賴於選擇返回或重新創建時堆棧可能存在或不存在的事實。從你的問題「......但這對我來說看起來不太可行......」 - 我建議你重新思考,因爲這是唯一的保證方式。 – Squonk 2012-01-08 11:57:48
你已經覆蓋了後退按鈕,它仍然回去?你在調用super()方法嗎? – MikeIsrael 2012-01-08 12:31:48
@MikeIsrael:Ive嘗試過沒有超級但它仍然會殺死活動,即使它沒有被殺死,那麼你將如何阻止開始活動B的新實例呢?它總是作爲一項新的活動開始的嗎? – 2012-01-08 12:54:46