2012-02-18 26 views
3

我怎麼能弄清楚哪些活動將在當前活動的的onStop()方法旁邊的onStop()之後,通過啓動與startActivity一個新的活動被調用()?查找的onStop下一個活動()調用時startActivity

我現在唯一的想法是: 聲明我用作全局變量的意圖並使用intent.getClass()或類似方法在onStop()方法中檢查它。這會好嗎?不知何故,感覺就像快速和骯髒的方法。

感謝您的幫助!

編輯: 因此,這裏的情景:

活性1是一個列表視圖,用戶可以選擇一個或多個行,然後點擊「提交」,現在所有選定的線路在後臺任務提交到服務器。

我使用數組在我的服務,所以如果用戶離開列表視圖沒有擊中提交該陣列仍然充滿過時的選擇存儲選擇的ID的submissin之前。

因此,如果用戶選擇一個或多個行,然後退出Activity1而沒有「提交」,我希望選擇被放棄,所以我確實調用了一個方法在Activity1的onStop()方法中清除該數組。這很好,但是離開Activity1有不同的方法。例如,我確實有一個有3個條目的上下文菜單,其中每個條目都啓動另一個活動。

現在我需要保持我的數組值,以防止從上下文菜單中選擇一個特殊的單個活動(假設Activity2)。

對不起,如果這不明確,但我不是在談論活動實例,而是關於一般活動的類型。

因此,所有我需要在的onStop()方法知道的是,如果我們從活動1切換到Activity2.java或Activity3.java。

也許Activity1的onStop()甚至不是我明確或不明確的決定的正確位置?

再次感謝

回答

1

您可能要添加一些澄清你的意圖在這裏,因爲這個問題是有點含糊。

默認情況下,當一個Acitvity啓動時,它被放置在一個稱爲回棧的隊列中。當活動結束時,它被取出,前一個活動被帶到前臺。

開始一個新的活動時,與如果不設置正確,你將創建活動的新實例,即使一個在後面堆棧已經存在Becareful。如果我理解你的問題,你要尋找:

Intent intent = new Intent(getContext(), NewClass.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

這將清除棧除了提到的活動,並把它帶到了前臺,如果在後面堆棧存在。

This SO thread說明如何清除棧(Android guide)。

看一看here,其中介紹瞭如何管理任務和活動,但谷歌警告不要操縱默認beahviour。

+0

嗨,剛剛編輯的問題。我希望這可以更清楚一點。謝謝! – homtg 2012-02-22 18:34:47

相關問題