我有两项活动:
活动A - > onCreate()方法与数据库交互并显示活动中的数据。
活动B(通用)
现在,在我的活动A中,我有一个按钮,通过Intent将我带到活动B;在活动B中找到相同的Intent从B返回到A.
问题在于:当我从B回到A时,再次调用onCreate方法,并再次从数据库中获取数据。 有没有办法从活动B转到A而不必从数据库中再次获取数据,可能会“保存”#39;活动A的状态?
谢谢。
答案 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时,它会传回它在开始时收到的值。