【发布时间】:2012-09-06 02:02:53
【问题描述】:
我想知道我通过 Intent 将变量传递给另一个活动,并且该活动更改了该变量,它是否会反映在原始活动中而不传递回意图。 如果答案是否定的,那么使用应用程序使用全局变量然后传递意图并取回数据会更好。在我的程序中,我有 5 轮以上的活动,所有这些活动都需要访问一个类对象列表。 除上述以外的任何建议
【问题讨论】:
我想知道我通过 Intent 将变量传递给另一个活动,并且该活动更改了该变量,它是否会反映在原始活动中而不传递回意图。 如果答案是否定的,那么使用应用程序使用全局变量然后传递意图并取回数据会更好。在我的程序中,我有 5 轮以上的活动,所有这些活动都需要访问一个类对象列表。 除上述以外的任何建议
【问题讨论】:
创建您自己的Application 扩展来存储您应用的状态并在组成您应用的不同活动之间共享数据。 Application 充当整个应用程序的上下文,Android 保证在您的应用程序中始终只有一个实例。因此,它的工作方式类似于定义您自己的 Singleton,但使用 Application 将允许 Android 控制您共享数据的生命周期,并基本上为您进行内存管理。
总结一下:
Application 子类。在此之后,您将能够安全地将所有调用的结果转换为getApplication()(来自Activity 实例)和getApplicationContext()(来自任何Context 实例)到您在步骤#1 中定义的子类.这意味着您可以使用应用程序扩展中定义的任何 getter/setter 方法来存储/检索数据。
【讨论】:
Application 方法。将其视为您的应用程序的“模型”。如果您只需要本地或一次的数据,那么集中它是没有意义的,所以您不妨使用Intent。您的描述表明第一个适用于您的情况。