我正在制作一个应用程序,其中包含用户拥有的书籍列表,我需要从多个活动和片段中访问它。我有两个问题:
List<Book>
传递给每个活动,这非常烦人。我会使用共享偏好设置,但不能保留Parcelable
个。我确实看到了一个库,它允许你将数据存储为字符串,通过使用Gson将它们转换为json,但我担心这会太过性能密集。总结一下,我在哪里放置所有活动需要访问的数据并永久存储?
答案 0 :(得分:1)
有一些解决方案:
1.您可以使用服务器端服务在那里存储数据(如果您有服务器)
2.您可以将书籍列表存储在数据库中或使用GSON并将其作为JSON字符串存储在共享首选项中
3.你可以扩展Application类。
上述所有解决方案都存在无障碍问题 性能取决于您的数据大小。 您还可以尝试使用更少的活动和更多碎片,以便减少数据库/网络呼叫。
答案 1 :(得分:0)
为了管理可以从所有活动访问的数据,我建议使用某种AppResources类,它包含任何应用程序活动可以使用的静态变量(如书籍列表),片段(如果需要上下文,则只需传递Context to static to these methods)。
将数据转换为字符串在性能方面并不昂贵,并且将数据存储在共享首选项中也是如此,共享首选项将数据一次加载到地图上,然后每次获取或设置都需要&lt; 1ms的
答案 2 :(得分:0)
你不能使用单身人士 像这样的东西
public class Data {
public Boolean m_b1 = false;
public Boolean m_b2 = false;
private List<String> m_oMyList;
private static Data x;
private Data() {
m_oList = new ArrayList<String>();
}
public static Data X()
{
if(x == null)
x = new Data();
return x;
}
}