Android:保留活动的数据,在5个不同的实例中创建相同的活动

时间:2015-09-23 08:06:24

标签: android savestate

我有一个带有2个活动的android应用程序,第一个是一个TableView,它包含由xml中的代码生成的5个项目。在xml中它只有一个带有id的TableLayout,好的。

我想知道如何在活动中保存数据。

情景:

  1. 点击tableView中的一行,打开一个包含大量数据的新活动。

  2. 点击后退按钮会直接破坏活动而不会运行onSaveInstanceState,因此我的数据会丢失。

  3. 点击"同一"再次排,活动被重新创建!

  4. 所以我的问题有两个:

    i)如何不破坏第二项活动的所有数据?尝试过onSaveInstanceState / onRestoreInstanceState / onCreate之类的东西,总是空的并且被破坏了!

    ii)是否可以启动活动并拥有" uniq"表中每行的活动实例?所以这里的事情是表格中的每一行现在都会开始第二个活动的新活动,我不希望每一行都使用"相同"活动,我是否需要使用不同的数据创建5个不同的完全相同的活动?

    希望您理解我的问题?

1 个答案:

答案 0 :(得分:0)

据我所知,当你回到活动A时,你想要保存活动B的实例。这样你就可以在相同的状态下再次启动活动B.这是不可能的,因为在后面按下finish()方法调用当前活动。

我想到的一个简单的解决方案是,onBackPressed of Activity B你可以根据你的Activity B的当前状态更新一个bundle(这将在每个行的唯一的Activity A上)。下次打开Activity时B发送此捆绑包并在活动B的onCreate中处理此捆绑包以显示上次保存的当前活动实例。通过这个,您可以为每一行使用相同的活动。不要多次复制相同的活动。