過去数か月間、会社のライブラリの開発に取り組んできましたが、データを内部ストレージに保存またはロードするたびに、ファイルストリームにコンテキストが必要なように見えるという事実に悩まされています。
私はこのように動作するようにライブラリを設計しました:
- キーチェーン (アプリ キーとデバイス ID を含む) と authinfo (ユーザーとパスワード) を提供および処理するためのシングルトン クラスが作成されます。
Web サービスを呼び出すリクエストが行われるたびに、呼び出し元のクラスはシングルトン クラスのインスタンスを取得しようとし、次のようにそれを介してキーチェーンと認証情報を取得しようとします。
SingletonClass.getInstance().getCredentials(コンテキスト ctx);
この結果、呼び出しアクティビティのコンテキストを常に提供する必要があります。これは、ほとんどのライブラリが資格情報とデバイス ID をパラメーターとして使用して API を呼び出すことを中心に展開するためです。
私は特にこれらの行を参照しています:
....
FileOutputStream fos = ctx.openFileOutput(filename,
Context.MODE_PRIVATE);
fos.write(buf);
fos.close();
....
アクティビティ呼び出しの特定のコンテキストが必要な理由について混乱しています。どんな助けでも大歓迎です。この設計上の問題を解決する別の方法はありますか?