以下の問題は個別に説明されていますが、機能する解決策が見つかりませんでした。したがって、完全なストーリーと問題のリストを投稿します。
複数のアプリで使用する SDK (midlet jar) を作成しています。この SDK は、永続ストアを使用して特定のデータを保存します。
1. ストアにアクセスするためのキーが SDK にハードコードされています。複数のアプリが同じキー値でストアにアクセスしようとすると、競合の問題が発生します。
2. Persistable オブジェクトのパッケージ/クラス名が複数のアプリで同じです。このため、アプリの起動中に「Class Multiply defined」エラーが発生します。
2 については、以下のオプションを熟考してきましたが、いずれも問題を解決していないようです:
1. Vector などの標準オブジェクトを拡張せず、標準オブジェクトを使用します。
問題: データのリサイクルが失われ、競合が発生します。
2. ライブラリを使用するアプリケーションごとに一意の名前でライブラリを構築します。
問題: これは、使用したいすべてのクライアントに対して異なる SDK をリリースする必要があることを意味します。
3. 次のアプリのパッケージをロードする前に、Persistable オブジェクト クラスが既に存在するかどうかを確認します。
問題: 最初のパッケージがアンインストールされるとどうなりますか? クラスタイプは削除されますか?
4. Persistable インターフェイスを実装するようにアプリに依頼し、コールバックでキーを渡します。
永続ストアを使用できないという理由だけで、アプリにいくつかの値を渡すように要求するのは正しくないように思えます。
そのため、現在のところ、Persistable オブジェクトを使用する SDK は完全に壊れているようです。それとも、何か不足していますか?
タスクを達成するための他の代替提案も大歓迎です。