我有一系列活動A,B,C,完成後需要將新活動Y推送到我的家庭活動中。任務堆棧應該如下所示。Android推送新活動,同時清除其他活動
- ħ
- H->甲
- H-> A-> B
- H-> A-> B->Ç
- H->ý
我需要後退按鈕能夠從C返回到B或B返回到A,但是C完成後我需要去使Y成爲活動任務。來自Y的「回」需要回到家(H)。
謝謝。
我有一系列活動A,B,C,完成後需要將新活動Y推送到我的家庭活動中。任務堆棧應該如下所示。Android推送新活動,同時清除其他活動
我需要後退按鈕能夠從C返回到B或B返回到A,但是C完成後我需要去使Y成爲活動任務。來自Y的「回」需要回到家(H)。
謝謝。
傑米,現在做Android的東西?多麼可怕的想法!無論如何,finish()
是你的朋友,當涉及到從堆棧中刪除活動。您可以多次調用它以彈出堆棧中的多個活動。
或者,您也可以通過在您的意圖中傳遞FLAG_ACTIVITY_CLEAR_TOP標誌來擦除整個堆棧(但它聽起來像要保留H,所以這可能不是明智的選擇)。
順便說一句,我還沒有玩過的一件事是FLAG_ACTIVITY_NEW_TASK,但這可能適用於你的情況。在開始之前先通過A
。儘管如此,這可能對你來說完全沒有用處,所以只是稍微嘗試一下。
編輯:玩了一下,多次調用finish()實際上並不像預期的那樣工作。我通過在FLAG_ACTIVITY_CLEAR_TOP開始H
,然後在Y
之後立即開始工作(即在一個函數中調用兩個startActivity
)。
你可以啓動一個活動H
與國旗FLAG_ACTIVITY_CLEAR_TOP
。這將稱爲活動H的onNewIntent()
方法。您可以在此目的中設置適當的附加項並使用它們啓動Activity Y
我認爲這將是「正確」的方式來做到這一點,當EboMikes方法的士氣暴跌時,我可能會嘗試它。然而,它的上午4點和他的想法奏效了,所以它可能要等到上午=) – jamie 2011-05-16 11:18:49
但是,如何獲得A和B?對於C,getParent()爲空。如果B和C可能是子活動?我想過讓A和B保持全局裁判,但是我的左手抓住一支鉛筆並刺傷了我的右手。另外,我現在正在流血。 (嗨!是的,我正在做Android的東西,雖然我去年得到的可憐的機器人大多未被使用,很多iOS開發,沒有太多的機器人。) – jamie 2011-05-14 06:51:47