这可能是一个简单的问题,但我找不到答案。 我有一堆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。
答案 0 :(得分:0)
只需保存完整的班级名称(例如com.example.myapp.MyClass
),然后使用Class
方法(Class.forName()
方法)引用Class.forName("com.example.myapp.MyClass")
对象。
请注意,不应尝试将Parcelable
个对象保存在持久存储中(如文档所示)“按原样”,因为这些对象的方式是“反序列化”(解组) ,更确切地说,平台之间可能有所不同