【发布时间】:2016-08-14 19:40:32
【问题描述】:
我开发了一个侧边栏应用程序,我现在使用的方法是获取所有应用程序并让用户选择他最喜欢的应用程序。现在,我将这些选定应用程序的 packageNames 保存为 SharedPreferences 中的 Set,每次触发侧边栏时,都会检索所有已安装应用程序的列表,然后通过检查保存的集合中的 packageNames,我列出了选定应用程序并显示它们。它还具有自定义图标包集成,因此我创建了存储每个应用程序的 ResolveInfo、标签和图标的自定义对象,并将这些对象的列表传递给适配器。
现在我也想实现快捷功能。因此,为此我考虑使用的方法是直接保存自定义对象列表并检索它们,而不必每次都从所有应用程序列表中获取列表,如果它是自定义快捷方式,我将不得不将其保存在某处并直接检索,因为我以前的方法无法检索它。
自定义对象如下所示:
public class MyAppInfo {
public ResolveInfo info;
public String label;
public Drawable icon;
public MyAppInfo() {
}
public MyAppInfo(ResolveInfo info, String label, Drawable icon) {
this.info = info;
this.label = label;
this.icon = icon;
}
}
我研究了保存自定义对象列表的方法,我发现我可以通过使用 JSON、平面文件和 MySQL 数据库来做到这一点。
我试过 JSON 数组。但它只是在保存列表时卡住了,后来它显示内存不足,其他时候,应用程序就崩溃了。我什至尝试将其保存为文件,但它似乎对我不起作用,因为当我尝试检索它时数据始终为空。 SQL的方法我没试过,因为我不知道如何在SQL中保存Drawable。
有人可以帮我解决这个问题吗?在我的情况下,保存数据的最佳方法是什么?
提前致谢!!
【问题讨论】:
标签: android mysql json list save