保存Map <int,class <=“”>&gt; Android中的内部存储器</int,>

时间:2013-09-30 14:29:04

标签: android intentservice

这可能是一个简单的问题,但我找不到答案。 我有一堆IntentServices,它解析Web服务并将数据保存到本地数据库。我根据提供的ID在运行时调用它们:

private Map<Integer, Pair> serviceMap;

void initService(int ID){
        Intent intent = new Intent(mContext, serviceMap.get(ID).intentServiceClass);
        startService(intent);
}

private class Pair{
    private Class<? extends IntentService> intentServiceClass;
    private int dataVersion; 
}

Pair类中的dataVersion是本地数据库中可用数据的“版本”。 intentServiceClass是指IntentService,只有在服务器上有更新的“版本”数据时才会调用服务器。

现在我想保存这个serviceMap,因为dataVersion用于避免不必要的服务器调用。

所以任何建议?

我将Pair class Parceble保存到内部存储器但我不知道如何处理“Class”和Parceble。

1 个答案:

答案 0 :(得分:0)

只需保存完整的班级名称(例如com.example.myapp.MyClass),然后使用Class方法(Class.forName()方法)引用Class.forName("com.example.myapp.MyClass")对象。

请注意,不应尝试将Parcelable个对象保存在持久存储中(如文档所示)“按原样”,因为这些对象的方式是“反序列化”(解组) ,更确切地说,平台之间可能有所不同