一个Intent可用多长时间

时间:2013-10-06 22:50:45

标签: android android-intent android-activity

我想知道Activity中的getIntent()有多长可用(不返回null)。所以我要说我从我的活动A开始活动B并在意图中传递一些额外的数据。

在活动B中,我将从活动onCreate()方法中读取intent中的额外数据。 到现在为止还挺好。但getIntent()有多长?我的意思是,如果用户显示活动B,但切换到另一个应用程序(即使用多任务按钮),几个小时后用户再次点击多任务按钮(此时活动可能已被销毁)并打开活动B再次。因此,将调用活动B onCreate()来重新实例化活动B. getIntent()现在是否仍然返回具有额外值的原始Intent,或者我是否必须在活动onSaveInstanceState()中保存Intent额外值并使用onCreate(Bundle state)中的捆绑包?

2 个答案:

答案 0 :(得分:1)

  

getIntent()现在是否仍然返回带有额外值的原始Intent

从技术上讲,它会返回Intent的副本。一般来说,它应该与原始Intent相同,包括所有额外内容。

答案 1 :(得分:0)

从Android文档中,getIntent()返回

Return the intent that started this activity.  

但是他们的情况很多,其中getIntent为null或extras为null。检查此linkthis。特别是在设备旋转或按下后退键。

但正如其文件似乎另有说法一样。为了安全起见,我建议你做以下事情

if (getIntent() != null && getIntent().getExtras() != null){

}

并且,您的活动代码应该准备好处理getIntent为空的方案。