1

これはおそらく簡単な質問ですが、答えが見つかりません。Web サービスを解析し、データをローカル DB に保存する IntentServices がたくさんあります。そして、私は次のように提供された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 は、ローカル DB で利用可能なデータの「バージョン」です。IntentServiceClass は、サーバーで新しい「バージョン」のデータが利用可能な場合にのみサーバーを呼び出す IntentService を参照します。

不要なサーバー呼び出しを避けるために dataVersion が使用されるため、この serviceMap を保存したいと思います。

提案はありますか?

内部メモリに保存するためにペアクラスのパーセブルを作ったのですが、「クラス」とパーセブルの扱いがわかりません。

4

1 に答える 1

0

完全なクラス名(つまり)を保存してから、メソッドを使用してオブジェクトcom.example.myapp.MyClassへの参照を取得します(この場合)。ClassClass.forName()Class.forName("com.example.myapp.MyClass")

これらのオブジェクトが「デシリアライズ」(より正確には非整列化) される方法はプラットフォーム間で異なる場合があるため、(ドキュメントで提案されているように) 永続ストレージにオブジェクトを「そのまま」保存しようとするべきではないことに注意してください。Parcelable

于 2013-09-30T14:38:14.000 に答える