12

Android ユーティリティ クラスで、クラスのシステム設定値を取得したいのですが、それを呼び出すクラスにもコンテキストがないため、そこにコンテキストがありません。Resources.getSystem()リソースには静的関数を使用できることがわかりました。コンテキストなしでシステム設定を取得する同様の方法はありますか?

私のクラスはアクティビティでもサービスでもありません。ユーティリティクラスです。必要に応じてさらに情報を提供できます。

4

3 に答える 3

7

コンテキストを送信する必要があります-責任から逃げようとしないでください。:) ユーティリティ クラスは、あるレベルでアクティビティまたはサービスによって呼び出される必要があり、すべてのメソッド呼び出しを通じて、そのコンテキストをずっと下に渡す必要があります。私はそれが面倒なことを知っています、私は自分で同様のことをしなければなりませんでした. コードをシンプルに保ち、何かを達成するために必要なメソッド呼び出しをできるだけ少なくすることは、インセンティブと考えてください。

于 2009-11-29T20:41:53.490 に答える
-1

私は次のハックを使用します: http://www.hasemanonmobile.com/2009/10/05/quick-and-very-dirty-android-development-trick/

基本的に、アクティビティ内の静的変数としてコンテキスト ポインターを隠します。締め切りが厳しい場合にのみ、この醜いハックをお勧めします。

さらに、ユーティリティ クラスを作成している場合は、(多くの Android ユーティリティで必要とされるように) 呼び出し元のアプリケーションがコンストラクターの一部としてコンテキストを提供することを要求する必要があります。

于 2009-11-29T20:57:23.093 に答える
-3

コンテキストを作成できます。

Context myContext = createPackageContext("com.example", 0);
于 2009-12-23T08:58:35.223 に答える