【问题标题】:Returning back to last state in previous activity返回上一个活动中的最后一个状态
【发布时间】:2015-09-21 08:11:41
【问题描述】:

我有两个活动 A 和 B。当应用程序启动时,活动 A 被加载,我从数据库向它加载数据。 我可以毫无问题地进入活动 B,但是当我返回活动 A 时,会查看一段时间的旧数据并重新加载活动。

知道如何解决这个问题吗?

【问题讨论】:

  • 请显示您的代码关于您如何调用和返回活动
  • 显示您的代码。不需要从 B 开始活动 A。你只需要 Finish();活动 B。您已自动重定向到活动 A 的最后阶段。希望它有效

标签: android android-activity


【解决方案1】:

在从 DB 加载数据开始之前清除所有字段。从需要很少的时间和在此清除前一个字段之前加载数据。

【讨论】:

  • 谢谢,问题出在我的设备上,该应用在另一台设备上运行良好!
【解决方案2】:

这里你可以把所有字段都留空..

您需要重写 onSaveInstanceState(Bundle savedInstanceState) 并将您要更改的应用程序活动状态值写入 Bundle 参数,如下所示:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  /* Save UI state changes to the savedInstanceState.
  * This bundle will be passed to onCreate if the process is
  * killed and restarted activity
  */
  savedInstanceState.putString("YourString", "");

  // etc...
  // etc...
}

Bundle 本质上是一种存储 NVP(“名称-值对”)映射的方式,它会传递给 onCreate() 和 onRestoreInstanceState(),您可以在其中提取如下值:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.

  String myString = savedInstanceState.getString("YourString");
}

您通常会使用这种技术来存储应用程序的实例值(选择、未保存的文本)等。

【讨论】:

  • 谢谢,问题出在我的设备上,该应用在另一台设备上运行良好!
  • 你检查它为什么会发生吗?只要调试它你就会发现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 2013-12-05
相关资源
最近更新 更多