启动另一项活动,在之前的活动中发生了arraylist

时间:2017-10-13 12:56:20

标签: java android

我有一个活动让我们称之为活动A在创建时从数据库中下载一些数据。数据存储在名为myData的自定义ArrayList中。

当用户点击按钮时,会启动另一个名为B的活动。活动A将一些数据传递给活动B,我可以通过使我的类实现Parcelable来完成。

我了解活动B何时使活动A处于onPause或onStop状态。我的问题是,当活动B关闭并且重点回到活动A时,我的arraylist myData是否仍然存在?如果不是,我如何存储这些数据?

2 个答案:

答案 0 :(得分:2)

一旦启动新活动,之前的活动就会进入onStop状态。

onStop的定义:

  

当活动不再对用户可见时调用,因为   另一项活动已经恢复并涵盖了这一项。这可能   发生的原因是因为正在开始新活动,现有活动   被带到这一个面前,或者这个正在被摧毁。

见此图表

enter image description here

现在当您返回ActivityA时,数组数据仍然存在。因此,当活动切换发生时,一旦再次启动activityA,这些数据就不会被破坏并重新创建。

答案 1 :(得分:1)

是的,您可以使用ActivityB方法完成finish()。当您返回ActivityA时,您的arrayList数据将存在。我建议将arrayList声明为ActivityA的实例变量,并在onCreate()方法上获取数据。所以数据将存在直到活动销毁,因此当活动成为焦点时,数据将不会再次获取。