0

過去数か月間、会社のライブラリの開発に取り組んできましたが、データを内部ストレージに保存またはロードするたびに、ファイルストリームにコンテキストが必要なように見えるという事実に悩まされています。

私はこのように動作するようにライブラリを設計しました:

  1. キーチェーン (アプリ キーとデバイス ID を含む) と authinfo (ユーザーとパスワード) を提供および処理するためのシングルトン クラスが作成されます。
  2. Web サービスを呼び出すリクエストが行われるたびに、呼び出し元のクラスはシングルトン クラスのインスタンスを取得しようとし、次のようにそれを介してキーチェーンと認証情報を取得しようとします。

    SingletonClass.getInstance().getCredentials(コンテキスト ctx);

この結果、呼び出しアクティビティのコンテキストを常に提供する必要があります。これは、ほとんどのライブラリが資格情報とデバイス ID をパラメーターとして使用して API を呼び出すことを中心に展開するためです。

私は特にこれらの行を参照しています:

....
          FileOutputStream fos = ctx.openFileOutput(filename,                      
                   Context.MODE_PRIVATE);
          fos.write(buf);
          fos.close(); 
....

アクティビティ呼び出しの特定のコンテキストが必要な理由について混乱しています。どんな助けでも大歓迎です。この設計上の問題を解決する別の方法はありますか?

4

2 に答える 2

0

ファイル ストレージ API は Context クラスによって提供されます。だからあなたはそれが必要です。

于 2012-06-05T10:14:52.920 に答える
0

これにはアプリケーションコンテキストが機能するはずです-この方法を使用することを検討できます:アプリケーションコンテキストをどこでも使用しますか? そのため、アプリケーション コンテキストを渡すことなく簡単に取得できます。

于 2012-06-05T10:25:58.313 に答える