在创建意图时销毁活动

时间:2014-07-28 06:15:23

标签: android android-intent

我正在编写一个实现条形码扫描器的应用程序。 收集了多个值并在同一个Activity中显示。每当用户想要获得新值时,他就会在处理条形码扫描部分的设备中的另一个应用程序上调用Intent,并返回包含条形码所保持的实际值的String。 最后,多次扫描的多个值将显示在同一个Activity中。

它可以在两个不同的设备上完美运行(Android 4.4.2上的Nexus 7,Android 4.0.4上的Vuzix M100)。 在这两个,它顺利,并在第二次意图返回,我以前的值仍然存储在活动中。 但是在Alcatel One Touch Mini 2(Android 4.3)上,每次我回到第一个活动时,它都会通过相关活动的onCreate方法并删除存储在全局Activity变量中的先前扫描值。

我在网上搜索过但我无法找到任何线索。为什么每三个手机中只有一部手机会删除每个创建的意图,我该如何预防?

它似乎不是硬件资源问题(如文档中所述,Paused intents可以被销毁以释放内存),因为有问题的设备几乎是最强大的。

2 个答案:

答案 0 :(得分:0)

"每当我回到第一个活动时,它都会通过相关活动的onCreate方法并删除存储在全局活动变量中的先前扫描值" - >你可以将它们存储在你每次在onCreate中阅读的共享偏好中吗?

答案 1 :(得分:0)

您需要为活动被销毁并稍后重新创建的案例做好准备。对于此Android调用onSaveInstanceState(),您可以在其中存储所提供的Bundle中所需的信息。然后,当重新创建活动时,将调用onCreate(),并将此Bundle作为参数传递,以便您可以从中读取数据。你可以在这里阅读更多相关信息=> Saving Activity State