2010-12-03 22 views
2

我有以下情形不對意圖:getIntent返回時setIntent後跟一個旋轉

我有一個聊天活動,在它的意圖是獲取接觸時間以證明消息的電子郵件,該活動有singleTop,因爲它的發射模式

通過在屏幕上滑動我的手指在不同的對話之間切換,我通過用新的意圖調用startActivity來做到這一點:onPause將被調用,接着是onNewIntent,其中我做了setIntent,之後是onResume 。在onResume中,我獲得了新的意圖,迄今爲止都很好。

然後我改變了方向:在onPause叫,隨後的onDestroy,在這一點上getIntent返回正確的意圖,隨後的onCreate其中有老人的意圖,隨後的onResume,其中也有老的意圖

我發現這個 - >http://groups.google.com/group/android-developers/browse_thread/thread/7f0389f349e1ee3b來解釋這種行爲,但它不會發生在我的HTC與Android 2.2的慾望,使用模擬器我發現它發生在1.5,但不是在1.6

所以我的問題:這是正常在1.5?如果是這樣,我該如何改變活動的行爲,這樣不會再發生?

我知道我可以將launchTode從singleTop更改爲標準,但這也會影響我不想要的android 1.6+,因爲在singleTop中,對話的更改速度很快(僅調用onPause和onResume),而標準onCreate和onDestroy也被稱爲...

也許有什麼我可以做的意圖標誌我還沒有找到,我在代碼中更改的標誌,所以我可以有一個「如果sdk是3」檢查...

感謝您的閱讀,丹尼

回答

2

您可以可能解決它通過覆蓋onRetainNonConfigurationInstance()並返回最新的意圖,然後您可以使用getLastNonConfigurationInstance()檢索。

+2

感謝您的回答,我想嘗試一下,但onRetainNonConfigurationInstance()的API描述中說:「這個函數純粹是作爲一種優化來調用,而且您不能依賴它被調用」;不依靠它被稱爲部分讓我看起來/希望有更好的解決方案... – Danny 2010-12-03 20:29:02

相關問題