gpt4 book ai didi

android - 通过 Android 中的 Intent 传递复杂对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:31 25 4
gpt4 key购买 nike

我有一个具有以下类字段的对象:

int, int, String, MyDatabaseType(自定义对象), List (自定义对象的数组列表)

我可以通过 Intent/bundle 传递它吗?

我尝试过一些 serializable 和 parcelable,但我无法让它工作。我是否需要使所有自定义对象类型都可打包,而不仅仅是我想传递的主要类型?

肯定有更好的方法吗?

最佳答案

当您在 Intent 中传递数据时,它必须是 Parcelable。这是因为 Intent 可能会传递给不同的应用程序,从而传递给不同的 VM。由于您的对象可能跨越进程边界,因此它需要一种允许保存/恢复它的机制。这类似于通过 Web 服务调用传递数据(在这种情况下,对象被“扁平化”为 XML 或 JSON 之类的东西)。

即使 Intent 保留在您的应用程序中,即使 Android 选择终止/重新启动您的应用程序,parcelability 也允许对象继续存在,这可能在内存不足时发生。

可以使用序列化代替打包,但打包更有效。

关于android - 通过 Android 中的 Intent 传递复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com