1

这可能是一个简单的问题,但我找不到答案。我有一堆 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。

4

1 回答 1

0

只需保存完整的类名(即com.example.myapp.MyClass),然后使用方法(在我们的例子中)获取对Class对象的引用。Class.forName()Class.forName("com.example.myapp.MyClass")

请注意,您不应尝试Parcelable“按原样”将对象保存在持久存储中(如文档所建议的那样),因为这些对象“反序列化”(更准确地说是未编组)的方式可能因平台而异

于 2013-09-30T14:38:14.000 回答