繁体   English   中英

我何时应该在Android应用程序中读取/保存文件中的数据?

[英]When should I read/save data in a file in an Android app?

我正在制作一个android应用程序,其中的数据需要从文件中读取,然后再保存回该文件。

基本上,这就是我的应用程序的工作方式:

MainActivity:用户输入确定要读取的文件,然后启动FieldActivity。

FieldActivity:显示从文件中读取的Data类型的对象。 用户可以更改存储在Data对象中的信息,因此在应用程序关闭时需要将其保存回文件中。 但是,只要FieldActivity正在运行,此Data对象就是同一对象。 (用户可以导航回MainActivity并选择其他文件来读取,这将构造一个新的Data对象。)

是否应该将数据保存到FieldActivity的onStop()或onPause()方法中? 我不确定是否有更好的方法,因为每次在“纵向”和“横向”之间切换时,如何调用这些方法。 但是,我想不到任何更好的选择。

编辑:我可以将其保存在onBackPressed()中,但是如果用户通过按下主屏幕按钮退出,则将不会保存它。

我将使用用户单击MainActivity中的按钮时调用的方法从文件中读取数据,然后立即启动FieldActivity。 但是,即使在FieldActivity中的方向更改之间,该数据也必须是同一对象。 我可以将其存储在一个静态字段中,但是我听说这是不好的做法,因此,我认为有更好的方法。

总结:我需要从文件中读取数据,并在用户进行更改后将其保存回文件中。 什么时候是在应用程序生命周期中的最佳时间?

(对于任何我做错的事情,我都表示歉意,特别是如果已经问过这个问题。我是StackOverflow的新手。)

您好,欢迎来到Stack Overflow :)。 嗯...据我所知,您是从edittext获得信息的,只想在离开活动之前将其存储回文件中...如果那是真的,并假设您使用后退按钮返回,则可以将所有内容存储在覆盖onBackPressed方法...

但这取决于您何时存储所有内容:

onPause()-当应用被部分遮盖但仍可见且仍在FG中运行时调用(例如,打开对话框时)。 onStop()-当应用不再可见且完全位于BG中时调用(被吸回到其他活动(如果您没有杀死它))。 我希望您熟悉活动生命周期,所以...这全都取决于您何时要存储新数据。 我会说在您离开活动之前...所以在您调用finish()之前...这通常是在用户完成设置所需的操作后...所以我会保存onBackPressed ... onStop也是有效的解决方案...我不确定您如何计划活动流程...但是对我来说... onBackPressed或onStop ... onPause ..不会在这里帮助您...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM