我有一个活动让我们称之为活动A在创建时从数据库中下载一些数据。数据存储在名为myData的自定义ArrayList中。
当用户点击按钮时,会启动另一个名为B的活动。活动A将一些数据传递给活动B,我可以通过使我的类实现Parcelable来完成。
我了解活动B何时使活动A处于onPause或onStop状态。我的问题是,当活动B关闭并且重点回到活动A时,我的arraylist myData是否仍然存在?如果不是,我如何存储这些数据?
答案 0 :(得分:2)
一旦启动新活动,之前的活动就会进入onStop状态。
onStop的定义:
当活动不再对用户可见时调用,因为 另一项活动已经恢复并涵盖了这一项。这可能 发生的原因是因为正在开始新活动,现有活动 被带到这一个面前,或者这个正在被摧毁。
见此图表
现在当您返回ActivityA时,数组数据仍然存在。因此,当活动切换发生时,一旦再次启动activityA,这些数据就不会被破坏并重新创建。
答案 1 :(得分:1)
是的,您可以使用ActivityB
方法完成finish()
。当您返回ActivityA
时,您的arrayList数据将存在。我建议将arrayList声明为ActivityA
的实例变量,并在onCreate()
方法上获取数据。所以数据将存在直到活动销毁,因此当活动成为焦点时,数据将不会再次获取。