使用大量意图附加信息启动活动

4
我正在使用一个带有Serializeable额外参数的活动。这个额外参数包含一个自定义对象的List,其中包含许多类型,主要是字符串。我从我的项目的资产文件夹中读取数据,并使用GSON解析它(数据为JSON格式)。这个文件大小约为108KB。
在我的应用程序的整个生命周期中,所有数据都作为意图额外参数传递。这非常方便,因为我不必担心重新从资产文件夹中加载数据,应用程序关闭恢复已全部处理,我也不需要管理SQLite数据库(版本控制,查询等)。
问题: 我发现传递这些额外参数可能会变得相当慢(启动所有数据的活动可能需要1.5秒或更长时间)。我似乎也无法显示任何“加载”对话框,因为它似乎是一个阻塞调用,以启动一个带有附加参数的活动。
问题: 我应该避免像我描述的那样传递这些额外参数吗?最好的选择是使用SQLite数据库来与这些数据交互吗?您有什么建议可以避免使用SQLite数据库/全局静态变量来访问我的应用程序数据的大量麻烦?
将我的JSON数据放入数据模型类中并将它们作为意图额外参数传递很容易和好(表面上),我不想放弃它!

1
也要考虑到公共类MyParcelable实现Parcelable接口。 - JAL
2个回答

2

我曾经遇到过同样的问题,也采用了你所描述的解决方案。我使用了SQLite数据库来存储信息,然后只传递唯一的id作为意图extra,并在调用活动时显示一个“加载…”进度对话框,同时访问数据库。

很可能使用SQLite是正确的选择。


0
为什么不在Application类的onCreate方法中将数据加载到Application类中,然后从每个活动中访问它呢?

我仍然需要在每次创建时检查应用程序关闭。 - james
真的,但你可以处理它:https://dev59.com/02025IYBdhLWcg3wVkif - neteinstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接