这可能是一个简单的问题,但我找不到答案。我有一堆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;
}
数据版本在对类是本地数据库中可用数据的"版本"。intentServiceClass 是指一个 IntentService,只有当服务器上有较新的数据"版本"可用时,它才会调用服务器。
现在我想将此服务映射保存为 dataVersion 用于避免不必要的服务器调用。
那么有什么建议吗?
我制作了配对类 Parceble 以将其保存到内部存储器中,但我不知道如何处理"类"和 Parceble。
只需保存完整的类名(即 com.example.myapp.MyClass
),然后使用Class.forName()
方法获取对Class
对象的引用(在我们的例子中Class.forName("com.example.myapp.MyClass")
)。
请注意,您不应尝试"按原样"将Parcelable
对象保存在持久存储中(如文档建议的那样),因为这些对象的"反序列化"(更准确地说是未编组)的方式可能因平台而异