2011-06-23 35 views
1

這裏是我有一個問題:Android的意圖被交還

我按按它包含一個額外的標記,該活動從通知開始通知欄開始的活動。我在我的活動的oncreate方法(這是我的應用程序的主屏幕)中使用此標誌來在該通知的頂部設置一個新屏幕(如果設置了通知中的額外內容)。

使部分工作很好。現在發生的事情是,當我點擊通知並按退格鍵退出應用程序時,如果我之後通過按回家按鈕重新啓動它,它似乎重新發送來自通知的最後一個意圖,以便它啓動我的屏幕再次。我已經在清單中嘗試了一堆標誌,迄今爲止我還沒有成功。

這裏是我用於活動的標誌。

android:clearTaskOnLaunch="true" 
    android:alwaysRetainTaskState="false" 

這裏的任何想法? 謝謝。

+0

我使用主屏幕TabActivity。 – DArkO

回答

3

好吧,事實證明,如果您的活動被宣佈爲singleTop,那麼每次按主頁按鈕開始活動時,最後的意圖都會重新發送。

作爲一種解決方法,我嘗試使用onConfiguration更改爲保存標誌,當意圖被使用但它不工作,因爲活動實際上已被銷燬,它不僅僅是改變方向。最後我做的是在共享偏好設置中保存該標誌,並在每次向singleTop活動發送一個新意向時將其設置爲false,並在每次使用意向附加組件時將其設置爲true。

這樣的問題髒固定的,但我很好奇,像這樣的行爲是如何正常:(。

+5

您可以檢查是否意圖是*不* **從歷史**與'if((intent.getFlags()&Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)== 0)'。 – neevek

+0

neevek你應該添加這個作爲答案,解決了我的問題。 –