我有一个Android应用程序,它希望它动态显示一组问题。 为了帮助我这样做,我有一个外部数据库(在应用程序之外)和一个内部数据库(应用程序内部的SQLite)。我将外部数据复制到内部数据库。
数据库包含调查,有x个问题。
我的问题是,通过内部数据库中的频繁语句显示问题,或者从内部数据库发出单个语句并将数据解析为Survey对象并通过与Survey对象交谈来显示问题是否更好?
我问的原因是因为在Android中将一个对象从Activity传递给Activity并不容易。
答案 0 :(得分:0)
我正在做类似的事情,而我为使这更容易做的事情是:
当我从后端API收到有关调查的信息时,不是反序列化JSON,而是将整个JSON作为字符串存储在数据库中。
在调查活动中,我从本地SQLite数据库获取JSON,并对其进行反序列化(使用GSON)。将它作为字符串放在此处而不是(或除此之外)对象图表意味着我可以轻松地将其保存在Bundle中,或者如果需要,可以在Intent中传递它。
我使用单个活动进行调查,使用碎片显示个别问题。但同样,如果您将调查信息作为JSON字符串,您可以保留各自的活动,并通过Intent附加信息在它们之间传递调查数据。
'下行'这种方法的一个原因是您可能需要经常反序列化相同的数据,但我认为这比经常查询数据库要好,并且通常很轻,可以在主线程上完成,而不会影响UI性能。这意味着你不必处理Parcelable。