【问题标题】:Save EditText before return返回前保存 EditText
【发布时间】:2014-06-19 03:28:24
【问题描述】:

我有一个 MainActivity 和一个具有 EditText 的第二个 Activity。我希望 EditText 的内容总是被保存。但是我不希望 EditTextChangedListener 在 1 个字符更改后写入文件。

什么是好的解决方案?我考虑过 onPause 或 onBackPressed。

主页按钮呢?我认为该应用程序仍处于打开状态,因此是否需要保存?那么其他的中断比如电话呢? onPause 能捕捉到所有这些吗?

谢谢。

【问题讨论】:

    标签: android android-layout android-edittext onpause


    【解决方案1】:

    是的 onPause 会在您的应用被中断或进入后台检查时调用Activity life cycle

    【讨论】:

      【解决方案2】:

      一个好的解决方案是在onPause() 方法中包含这样的逻辑。在所有情况下都会调用它。开发者文档是这样说的:

      您应该使用 onPause() 方法将任何持久性数据(例如用户编辑)写入存储。

      您应该记住的一件事是,调用此方法的频率可能比预期的要高,例如,当您的屏幕灯熄灭时(有些人有 15 秒的屏幕灯超时)。所以,你不应该在里面进行太多昂贵的操作。

      关于home键的按下,建议你保存数据(onPause())。原因是您的活动在后台,但它可能会被破坏。如果需要回收内存,系统可能会破坏活动。 (例如,您之后也启动任何其他应用程序并将它们全部放在后台)从文档中:

      Stopped: 该活动完全被另一个活动( 活动现在在“背景”中)。停止的活动也仍然 活着(Activity 对象保留在内存中,它维护所有 状态和成员信息,但不附加到窗口 经理)。但是,它不再对用户可见,并且可以 当其他地方需要内存时被系统杀死。

      【讨论】:

        【解决方案3】:

        没有。这里的正确答案是监听“返回”键事件。这表示用户已完成对字段的输入,并触发将字段内容保存到文件中。它在许多其他情况下也很有用。

        看到这个答案:Android Use Done button on Keyboard to click button

        彼得。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-26
          • 1970-01-01
          相关资源
          最近更新 更多