2010-12-03 23 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

相关问题