答えて
最も簡単な(そして正しい)方法がある:
は
public class MyApp extends Application {
private static MyApp instance;
public static MyApp getInstance() {
return instance;
}
public static Context getContext(){
return instance;
// or return instance.getApplicationContext();
}
@Override
public void onCreate() {
instance = this;
super.onCreate();
}
}
は、その後、あなたのマニフェストにあなたがで「名前」フィールドに、このクラスを追加する必要があり、新しいクラスを定義します[アプリケーション]タブをクリックします。またはXMLを編集し、
<application
android:name="com.example.app.MyApp"
android:icon="@drawable/icon"
android:label="@string/app_name"
.......
<activity
......
を配置し、どこからでもあなたは
MyApp.getContext();
はそれが
これは動作しますが、あなたがそれを悪用しないでシングルトンを使用するのと同じように注意してください。[この質問への答えを読む](http://stackoverflow.com/questions/7298731/when-to-call-activity-コンテキストContextまたはApplication Context/7298955#7298955)は、ApplicationContextが使用するコンテキストを(たまには)まれにしかしない理由を説明しています。 ベストウェイ: Contextを必要とするクラスの内部でContextを引数とするパブリックメソッドを公開していない場合(アクティビティなどから渡す)、これがその方法です。 Exp: public void abc(コンテキストc、int a); を呼び出し、それを任意のアクティビティから呼び出します。 –
基本的には、コンテキストの2種類持ってお役に立てば幸い呼び出すことができます - アクティビティーコンテキストとApplication Contextを。
すべてに1つのコンテキストしか使用する必要はありません。コンテキストが必要なたびに1つのコンテキストを使用すると問題が発生します。 アクティビティの範囲を超えてコンテキストを渡すときは、アクティビティ内でアクティビティコンテキストを、アクティビティ内でコンテキストを渡すときにはアプリケーションコンテキストを使用してください。memory leaksを回避するのに役立ちます。
この記事を読むと、2つのコンテキストの違いがわかります。
アプリケーションコンテキストは限りアプリケーションが 生きていると活動のライフサイクルに依存しないとして生きるでしょう。コンテキストが必要な長寿命オブジェクトを保持する予定の を計画している場合は、 アプリケーションオブジェクトを覚えておいてください。
代わり アクティビティーコンテキストが活性に関連し、活性が破壊される回数だけ破壊される可能性が
- 一般にバック変更画面の向き、ボタン等
これは良い答えです。 – ctn
- 1. どこからでもSpringモデルを取得する
- 2. NativeActivityからコンテキストを取得する
- 3. 外部コンテキストからプロパティデータを取得
- 4. すべての押されたキーをどこからでも取得する
- 5. 非アクティビティクラスからコンテキストを取得する方法は?
- 6. getContext()またはコンストラクタからコンテキストを取得する
- 7. Workflow Sharepoint 2010からのコンテキストの取得
- 8. コンバーターでコンテキストを取得しますか?
- 9. どのように選択したテキストを取得するのですか?javascriptで周囲のコンテキストを取得することはできますか?
- 10. は「この」内部クラスのコンテキストを取得とするtheClass *
- 11. webappコンテキストではなく、Tomcatルートからウェルカムページを取得する方法は?
- 12. LocationListener内でコンテキストを取得
- 13. SyncAdapter内でコンテキストを取得
- 14. C#で属性コンテキストを取得する
- 15. getclass()。getResource()を静的コンテキストから取得する方法?
- 16. アダプターのアクティビティー・コンテキストをフラグメントから取得する
- 17. そのコンテキストからキャンバスサイズを取得する
- 18. コード内のコンテキストからエンティティコレクションを動的に取得する方法は?
- 19. オブジェクトをコンテキストに追加して関係からプロパティを取得
- 20. QGridLayoutから子どもを取得する - Qt
- 21. 静的コンテキストでクラスのロガーを取得するには?
- 22. Androidからコンテキストを取得してタブホストを有効にし、無効にする
- 23. CALayerのコンテキストに数ピクセルを加えたコンテキストを取得する方法は?
- 24. jsoupでこのhtmlページからテキストを取得するには?
- 25. プロパティのコンストラクタはコンストラクタでのみ設定できますが、どこからでも取得できますか?
- 26. DropDownListForはどこからモデルを取得しますか?
- 27. ASP.NETはどこからカルチャ設定を取得しますか?
- 28. actionscript 3.0はどこからパラメータを取得しますか?
- 29. NetServerEnumはどこからマシンのリストを取得しますか?
- 30. (char)intはどこからシンボルを取得しますか?
あなたを介してコンテキストの参照を渡す必要がそれを必要とするメソッドを呼び出した場合の引数*(ただし、参照を格納しない場合、メモリリークを引き起こす可能性があります)*。場合によってはApplication-Objectを使用することもできます。[この質問](http://stackoverflow.com/questions/987072/using-application-context-everywhere)を参照してください。しかし、答えを念頭に置いて限界を守ってください。 –