如何处理需要从多个活动访问的数据?

时间:2014-06-29 11:08:08

标签: android android-activity

我正在制作一个应用程序,其中包含用户拥有的书籍列表,我需要从多个活动和片段中访问它。我有两个问题:

  • 我需要将此List<Book>传递给每个活动,这非常烦人。
  • 我不确定何时将数据保存到文件中。我不希望用户丢失他们的数据,但我也不想在每次更改后保存它。

我会使用共享偏好设置,但不能保留Parcelable个。我确实看到了一个库,它允许你将数据存储为字符串,通过使用Gson将它们转换为json,但我担心这会太过性能密集。总结一下,我在哪里放置所有活动需要访问的数据并永久存储?

3 个答案:

答案 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;
}

}