通过意图调用另一个活动后保存活动状态

时间:2015-05-15 23:27:12

标签: android android-intent android-activity android-lifecycle

我有两项活动:

活动A - > onCreate()方法与数据库交互并显示活动中的数据。

活动B(通用)

现在,在我的活动A中,我有一个按钮,通过Intent将我带到活动B;在活动B中找到相同的Intent从B返回到A.

问题在于:当我从B回到A时,再次调用onCreate方法,并再次从数据库中获取数据。 有没有办法从活动B转到A而不必从数据库中再次获取数据,可能会“保存”#39;活动A的状态?

谢谢。

3 个答案:

答案 0 :(得分:1)

如果您执行新的Intent,则无法保存数据,因为每次保存方法时都会创建一个新对象。

您有一些选项可以解决它,尝试覆盖活动中的onSavedInstanceState方法。

您还可以将您从一项活动中保存的数据发送到另一项活动。

如果你给我们一些代码示例,我可以帮助你更多:)

答案 1 :(得分:0)

当你回到活动A时,它应该处于Resume状态,所以如果你没有它,你应该创建一个onResume方法,它可以重新处理数据库的东西。取决于您回到活动A时的需求

@Override
public void onResume() {
   super.onResume();
   //saved data base stuff can be here
   System.out.println("Resuming...");   //just a sanity check if you want to watch the logs do this
}

不知道你在做什么,但你可能需要分开一些代码,其中onCreate只是初始化东西,然后在其他地方调用你的数据库交互。

答案 2 :(得分:0)

我找到了一个解决方案: 当Activity A通过Intent调用Activity B时,它会使用putExtra将我需要保留的值传递给Activity B.

然后活动B通过getIntent()接收这些值,当活动B再次通过Intent调用活动A时,它会传回它在开始时收到的值。