调用另一个android活动中包含的对象的方法

调用另一个android活动中包含的对象的方法,android,android-activity,Android,Android Activity,在我的应用程序中,当前正在运行的活动需要来自已启动该活动的活动的数据。父活动有一个对象,需要调用该对象的方法来获取所需的数据 我是这样做的 在家长活动中 在儿童活动中 Puzzle-Puzzle=ParentActivity.Puzzle; ArrayList cells=puzzle.getItemList(); 它似乎起作用了。但我不确定这种方法的正确性。它允许在android中使用。 android运行时窗体将销毁父活动

在我的应用程序中,当前正在运行的活动需要来自已启动该活动的活动的数据。父活动有一个对象,需要调用该对象的方法来获取所需的数据

我是这样做的

在家长活动中 在儿童活动中
Puzzle-Puzzle=ParentActivity.Puzzle;
ArrayList cells=puzzle.getItemList();
它似乎起作用了。但我不确定这种方法的正确性。它允许在android中使用。
android运行时窗体将销毁父活动拼图是一个表示数据模型的纯对象,只要你认为这只是一个缓存,如果<代码>拼图,而且它的内容很小,你所拥有的就是“正确的”。 您的进程可以在离开前台后随时终止。此时,缓存的
谜题将消失。任何需要保存的数据都需要持久存储:文件、数据库、
SharedReferences
、“云”等等。静态
Puzzle
可以是持久数据的缓存,但真正的数据模型是持久存储,而不是缓存的
Puzzle


此外,静态数据成员表示有意的内存泄漏。静态
拼图
引用的任何内容都不能被垃圾收集。只要
拼图
很小,它就可以工作。这也是为什么
Puzzle
成为一个普通的
对象,而不是更复杂的东西(例如
活动
)很重要的原因——对象越复杂,你泄漏的内存就越多。

使用谷歌,这个问题已经讨论过一百万次了

公共静态难题

谜题是静态的,所以即使父活动消失了,它也不会在创建后被销毁。谜题将在两种情况下被销毁:你们自己做,你们的申请过程完成。所以使用你的方法是安全的


但我建议您使用谷歌“在活动之间共享数据”,并找到更好的方法(例如,在应用程序类中使用单音)。

为什么不自己测试一下呢?谢谢您的回复。这真的很有用。谢谢你的回复。这真的很有用。
public static Puzzle  puzzle;  // Puzzle is a class
Puzzle puzzle = ParentActivity.puzzle;

ArrayList<String> cells = puzzle.getItemList();