返回前保存EditText

时间:2013-10-06 11:04:37

标签: android android-layout android-edittext onpause

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

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

主页按钮怎么样?我认为该应用程序仍然是开放的,所以有需要保存吗?那电话等其他中断怎么办? onPause能抓住这一切吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

是的,只要您的应用被中断或进入后台检查Activity life cycle

,就会调用onPause

答案 1 :(得分:0)

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

  

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

您应该记住的一件事是,这种方法可能比预期更频繁地调用,例如,当您的屏幕指示灯熄灭时(某些人有15秒的屏幕指示灯超时)。所以,你不应该在那里投入太多昂贵的操作。

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

  

Stopped:活动被另一项活动完全遮挡了   活动现在处于“背景”)。停止的活动也仍然存在   alive(Activity对象保留在内存中,它维护所有对象   州和会员信息,但没有附加到窗口   经理)。但是,它不再对用户可见,而且可以   在其他地方需要内存时被系统杀死。

答案 2 :(得分:0)

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

请参阅此答案:Android Use Done button on Keyboard to click button

彼得。