4

無料版と有料版のアプリがあります。すべての無料バージョンのコードを、新しい無料バージョンのプロジェクトと有料バージョンのプロジェクトから参照するライブラリに入れました。

ライブラリ、そして今では私のプロジェクトすべてにプロパティファイルがあり、私の設定が完全​​に機能しなくなったことに気づきました。コードが実行される名前空間に応じて、SharedPreferencesをクエリしたときに異なる結果が得られるようです。

これに対処するための最良の方法は何ですか?どちらのアプリも今のところ同じ設定ですが、後で有料版を拡張して、無料版にはない設定を追加する予定です。

4

1 に答える 1

3

無料版がフルバージョンと共有できるかどうかではなく、ライブラリがトップレベルのアプリと設定を共有できるかどうかを尋ねていると思います。

APIドキュメントには、特定のプロセスの外部で設定を共有することはできないと記載されているため、(おそらく)2つの異なるパッケージ(1つはlib用、もう1つはトップレベル用)があるため、ライブラリで取得する設定が可能です。対トップレベルのアプリは異なるファイルからのものですか?

これを確認するには、/ data / data / your-packageにある電話のストレージを参照して、トップレベルのアプリとライブラリの設定ファイルを探します。それぞれに異なる設定ファイルがあることに気付くかもしれません。これは、ライブラリ/アプリ間で設定を共有できないことを意味すると思います。

トップレベルのアプリから設定の読み取りと書き込みを行い、それらの設定をライブラリに配信するためのインターフェイスを作成するだけで、これらの制限を回避できる場合があります。ライブラリにトップレベルの値が表示されるだけの場合、ライブラリは設定にアクセスする必要がないため、すべての設定アクセスは1か所から行われます。

また、これにより、フルとフリーで異なる設定を行うことができ(これらは別々の設定ファイルに保存されるため、とにかくデフォルトの動作です)、バージョンに基づいて適切な情報をライブラリに送信できます。

于 2010-08-18T18:19:40.827 に答える