2011-09-28 28 views
0

在一個應用程序中,我非常重用了活動,它顯示了在特定日期發生的事情列表。這一天是使用Intent Extras指定的。基於附加REORDER_TO_FRONT

我的問題是,如果用戶開始於day=1,然後選擇day=2然後day=1,從菜單中選擇的話,我想後退按鈕去day=2,然後回家。也就是說,我想要做REORDER_TO_FRONT,但不僅僅是基於活動的名稱,還有它的額外功能。

沒有接縫是適合此目的的任何意圖標誌。我已經考慮使用onNewIntent來實現我自己的'sub activity stack',但它可能不會很好。

你在應用中解決了類似的問題嗎?有沒有可能以編程方式訪問活動堆棧,並選擇哪一個適合返回?

回答

1

管理你自己的活動堆棧!如果我沒有弄錯,可以使用相同的活動來顯示每一天。將其設置爲單頂(FLAG_ACTIVITY_SINGLE_TOP)。在啓動意圖中,傳遞當前堆棧,在您的示例「121」中。

通過以較小的堆棧啓動您的活動來響應後退按鈕事件:「12」 - 或者如果堆棧已經是「」,那麼就讓Activity處理Back事件。然後,如您所述,使用onNewIntent函數更新您的活動。