Android:为下次应用启动保存ActivityInfo

时间:2013-10-22 18:35:58

标签: android

我有一个ActivityInfo的列表。每个ActiityInfo代表设备上已安装的应用程序。用户可以选择列表中的几个项目,我想保存这些项目以便下次启动活动。我怎么做?我知道SharedPreferences,但是它们用于字符串和int,不是吗?

List<ActivityInfo> apps = new ArrayList<ActivityInfo>();
ActivityInfo infoToSave = (ActivityInfo) apps.get(position);

编辑:问题是如何将infoToSave转换为一个字符串,可以保存以进一步发布应用程序。这是解决方案:

ComponentName name = new ComponentName(infoToSave.packageName, infoToSave.name);
String nameS = name.flattenToString();

此字符串可以保存在SharedPreferences中。但是,感谢所有回复!

2 个答案:

答案 0 :(得分:0)

正如您所知,SharedPreferences可以很好地用于存储键值对(通常是字符串)的少量数据。如果您的列表是可序列化的,则可以将列表存储为SharedPreferences。当然,onResume必须将您的SharedPreferences映射回List。

或者,您可以将ActivityInfo映射到本地SQLite数据库中的新架构/表。这种方法在多个活动中更具可伸缩性,因为您可以使用contentResolvers来观察和读取ContentValues(您保存)中的更改到SQLite DB中。

详细了解如何在http://developer.android.com/training/basics/data-storage/databases.html

向数据库插入数据或从中读取数据

答案 1 :(得分:0)

首先,SharedPreferences不仅仅是字符串或int,你可以使用布尔值或其他一些属性,你也可以使用SQlite数据库

http://developer.android.com/reference/android/content/SharedPreferences.html