Androidアプリの開発中に、静的クラスに入れたユーティリティタイプのメソッドのコレクションにたどり着きました。これらのメソッドはすべて複数のアクティビティで使用され、それらのほとんどは呼び出し元のアクティビティからの情報を必要としません。
ただし、アクティビティのコンテキストを必要とするメソッドと、アクティビティ自体を必要とするメソッドがいくつかあります。それらのいくつかを例示させてください:
- getDeviceNaturalOrientation()-アクティビティのgetWindow()。getWindowManager()。getDefaultDisplay()を使用して、ディスプレイの回転、幅、高さにアクセスし、デバイスの自然な向きを決定します。
- getDeviceOrientation()-上記と同様ですが、現在の向きを取得します
- createFile()-コンテキストを使用して、いくつかのリソース(文字列)にアクセスし、いくつかのトーストを作成して表示します
さて、このUtilsクラスに関する私の大きな質問は次のとおりです。
- これまでのところ、各関数は、私が行っているアクティビティから渡すContextパラメータを取りますが、Utilsクラスで静的なContextまたはActivity変数を作成し、各アクティビティの先頭に設定することは問題ありません(onCreateのように) )?この変数は、ContextまたはActivityインスタンスを必要とする関数で使用されます。
- 上記が推奨されていないと仮定して、Activityパラメーターをメソッドに渡しても大丈夫ですか、それともActivityをContextとしてのみ渡す理由がありますか?上記のデバイスオリエンテーション関数に使用するメソッドは、コンテキストではなくアクティビティオブジェクトに固有であるため、アクティビティとして渡すか、コンテキストとして渡してアクティビティにキャストします(後者はひどい考えのように聞こえます)。
また、このUtilクラスは、Context / Activityを必要とするこれらのメソッドを実行する方法ではない可能性があるという考えに非常にオープンです。したがって、これらのメソッドを使用する各アクティビティクラスにこれらのメソッドのコピーが存在しないようにする代替案を歓迎します。 。