每次回到活动中都会丢失数据吗?

时间:2018-08-27 14:33:09

标签: android

每个Edittext都有一个表单活动,当我更改数据时会打开另一个活动,而在活动中获取它会丢失以前更改过的其他活动。 this是初始状态,this是我通过更改任何数据得到的结果。

3 个答案:

答案 0 :(得分:0)

您需要一个一致的数据模型来存储这些值。如果大小不超过2MB,则可以将此模型设为Parcelable和seriali。之后,您必须将这些值缓存在saveInstanceState,SharedPrefs,单例(我不推荐)或本地数据库(即sqlite)中。这样做之后,无论何时显示活动,都应检查是否已经为该字段保存了一个值,并用该值填充。

答案 1 :(得分:0)

您可以通过使其打开另一个片段而不是活动来解决此问题,并确保您不破坏活动。

因此,您的总体视图将有1个主要活动,每个编辑文本将替换片段视图

答案 2 :(得分:0)

Bonjour植物群 如果未显示活动,则不应保留该活动。这意味着当您从其他活动返回时,它可以保持原样,但也可能不会。 如果系统需要释放内存,它将破坏活动并在用户恢复活动时重新创建活动。这是Android上的预期行为。

因此,您应该做的是在活动退出时存储数据(使用onPause()方法,并在活动返回时填充您的编辑文本(使用onResume()方法)

还请注意,您需要使用onConfigurationChanged()处理他们所谓的配置更改(例如屏幕旋转),该更改允许您在前一个配置和后者之间传递一些信息以供重用。

最后,您应该按照Android的准则(材料设计)构建布局,以使UI看起来更传统;)