2014-04-09 86 views
1

说我已经开始活动一个新的意图(背景下,类)这就是中有敏感数据,在此意图被破坏?特别是,在活动下面会getIntent()中什么情况下一个的代码返回完全相同的意图什么意图生命周期?

  1. 按活动的任务对Android的任务管理器中点击
  2. 应用程序图标和活性重建,并带到前

香港专业教育学院与我的应用程序试了一下,IAND我得到奇怪的结果。 ..通常它没有得到相同的意图,但有时它似乎它,所以我不知道最新怎么回事,反正如果可以从任何上层选项返回如何避免它?

我觉得一个Intent的生命周期一目了然将是有益的,如果任何文件的ANY1知道对此...

+0

只要A是在存储器中,它会保持传递给它的意图值 – mangusta

回答

1

说,我已经开始用新的意图(背景下,类)活性的我这有敏感数据,它的意图何时被破坏?

只要有对象/类持有对您的Intent对象的引用 - 它不会被垃圾收集。活动(活动A)持有参考启动它的意图,所以只要Activity一个对象不是垃圾收集 - 那么i也不会被垃圾收集。

重要评论:onDestroy()活动回调和类distractor是不同的事情!

以下哪些情况下getIntent()中的getIntent()返回完全相同的intent i?在活动的任务对Android的任务管理器

1)按:

如果活动是在反应备份按钮导航先前停止

假设你不是在呼唤setIntent()明确或者有人明确地呼吁finish(),那么活动通过onDestroy()回调。在这种情况下 - 按下最近任务管理器中的“应用程序”将重新创建一个新的意图从头开始,因此 - getIntent()会带来这个新的意图,不包含您的额外或其他重载。 (其活动通过主页按钮或其他活动发送到后台):当您从最近的任务中启动它时 - 它将是您通过它的原始附加内容的意图对象之前...被点击

2)应用程序图标和活性重建,并带到 前

基本上我提到的(1)适用于式(2),基本上这取决于相同的情况下对两两件事:

  • intent flags您正在使用的具体发射是在意图超载时会自动创建启动您的活动。

  • launch mode以及您用于启动自己的活动的意图过载的活动标志。

假设不使用任何上述的,并且正在使用正常良好的功能启动器应用 - 的行为将是完全按照我中说明(1)