2010-12-15 166 views
0

任何人都可以告訴我是否有任何方法將當前活動添加到活動堆棧(活動歷史記錄)。我有情況如下:如何將當前活動添加到活動堆棧

  1. 用戶開始新的活動 - A(我不希望把堆棧)
  2. 用戶開始從
  3. 用戶新的活動(B)按下BACK按鈕從乙
  4. B的走了,但是當用戶啓動活動B A也

走了,我想保持在歷史上能夠搬回與BACK按鈕。

我唯一想到的是在onKeyDown()方法中從B開始新的活動A.但也許有更好的方法?

+0

如果你要刷新你的活動「A」時,從B處叫然後使用onActivityResult刷新 – Eby 2010-12-15 13:03:07

回答

0

集機器人:clearTaskOnLaunch在根系活力=「真」(manifest文件)

還,除非你想阻止的B將A(當用戶按下返回鍵),你應該放下「沒有歷史」的標誌

文檔:

如果這個屬性在任務中的根系活力設置爲「真」,堆棧被清除下來,每當用戶離開任務並返回到根系活力它。換句話說,這是alwaysRetainTaskState的極性。用戶總是返回到其初始狀態的任務,即使一時沒有

http://developer.android.com/guide/topics/fundamentals.html#clearstack http://developer.android.com/guide/topics/manifest/activity-element.html#clear

+0

如果該方法有效,那將會很棒。問題在於它不是。在其他問題有人告訴說,HOME按鈕沒有完成根活動,因此無法重新啓動。 – Seraphis 2010-12-15 14:08:07

+0

也許我補充說,活動A是從我的小部件開始的。不知道它是否改變了任何事情 – Seraphis 2010-12-15 14:26:30

+0

已經在Activity A *上啓動時設置了明確的任務並且*刪除了沒有歷史標誌?那是怎麼回事? – 2010-12-15 15:47:12

1

如果你沒有當用戶啓動活動B將在那裏當用戶完成活動B.

+0

如果我開始標誌Intent.Activity_flag_no_history的活動A,那麼它不會。那就是問題所在。 – Seraphis 2010-12-15 12:52:44

1

這實際上是在應用程序的生命週期中正常發生了什麼叫發生的活性完成()。如果您在A中沒有撥打finish(),則應用程序將在B完成時返回到A.

+0

正如我在評論中寫道:它不會與國旗no_history ... – Seraphis 2010-12-15 12:53:44

+1

爲什麼你必須使用這個標誌,如果你想回到你的應用程序?請再說明一下爲什麼你必須放上這面旗幟,這將有助於我們回答你。 – 2010-12-15 12:54:40

+0

因爲我想要防止出現如下情況:用戶開始活動A - >用戶從A開始活動B - >用戶按下HOME按鈕 - >用戶開始活動A,但它直接移動到B – Seraphis 2010-12-15 12:59:19