将 Map<int、Class<>> 保存到 Android 中的内部存储器



这可能是一个简单的问题,但我找不到答案。我有一堆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对象保存在持久存储中(如文档建议的那样),因为这些对象的"反序列化"(更准确地说是未编组)的方式可能因平台而异

最新更新