我正在开展一项额外Serializeable
的活动。这个额外包含一个List
自定义对象,其中包含许多类型,主要是字符串。我从我项目的assets文件夹中读取数据,并用GSON解析它(数据是JSON)。这个文件的大小约为108KB。
对于我的应用程序的生命周期,所有数据都作为intent extras传递。这非常方便,因为我不必担心再次从资源文件夹重新加载数据,应用程序关闭恢复都得到了解决,我不需要管理SQLite数据库(版本控制,查询等) )。
问题: 我发现传递这些额外内容会变得非常慢(开始一项活动,所有数据可能需要1.5秒或更长时间)。我似乎无法显示任何“加载”对话框,因为它似乎是一个阻止调用来启动一个活动并附加额外内容。
问题(S): 我应该像我所描述的那样避免传递这些额外的东西吗?是使用SQLite数据库与此数据交互的最佳选择吗?您有什么建议可以避免SQLite数据库/全局静态变量的大量工作来访问我的应用程序的数据?
将我的JSON数据打包到数据模型类中并将它们作为intent extras传递是简单而且很好的(看似),我不想放弃它!
答案 0 :(得分:1)
我遇到了同样的问题并遵循了您已经描述的解决方案。我使用SQLite DB来存储信息,然后仅传递唯一ID作为intent extra,并在访问数据库时在被调用活动上显示“loading ...”进度对话框。
使用SQLite的Prolly是可行的方法。
答案 1 :(得分:0)
为什么不将数据加载到Application类,Application类的onCreate,然后从那里的每个活动进行访问?