Android アプリでは、次のアプローチに何か問題がありますか。
public class MyApp extends android.app.Application {
private static MyApp instance;
public MyApp() {
instance = this;
}
public static Context getContext() {
return instance;
}
}
そして、コンテキストが必要な(もちろん漏洩しない)あらゆる場所(SQLiteOpenHelper など)に渡しますか?
ベストアンサー1
このアプローチには潜在的な問題がいくつかありますが、多くの状況 (あなたの例など) ではうまく機能します。
GUI
特に、を必要とするを扱う場合には注意が必要ですContext
。たとえば、アプリケーション コンテキストを に渡すと、例外が発生します。一般的に言えば、あなたのアプローチは優れています。内でを使用し、のスコープ外のコンテキストを に渡す場合は をLayoutInflater
使用するのがよい方法です。Activity's
Context
Activity
Application Context
Activity
メモリリークを回避する。
また、パターンの代替getApplicationContext()
として、オブジェクトContext
(アクティビティなど)を呼び出すショートカットを使用してアプリケーション コンテキストを取得することもできます。