アクティビティとコンテキストは同じですか、それとも違いがありますか?
アクティビティを渡すメソッドとコンテキストはいつ必要ですか?
アクティビティとコンテキストは同じですか、それとも違いがありますか?
アクティビティを渡すメソッドとコンテキストはいつ必要ですか?
回答:
私が理解している限り:
コンテキストはベースオブジェクトです。したがって 、アプリケーションと同じすべてのアクティビティは、コンテキストから派生します。これは、すべてのアクティビティとすべてがISであることを意味します。Application
Context
アクティビティからdeveloper.android.com
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
そしてアプリケーション
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
アプリケーションコンテキストは、アプリが有効onDestroy
である限り存続しますが、アクティビティコンテキストはアクティビティで終了します(そのアクティビティの後は無効になります)。
そのため、アクティビティ全体(つまり、シングルトン)でコンテキストが必要な場合は、アプリケーションコンテキストを使用するほうがよいでしょう。
通常、コンテキストが予想されるAndroid Frameworkメソッドでは、どちらを渡しても違いはありません。ただし、コンテキストへの長期にわたる参照を維持する場合は、常にMemoryLeaksに注意してください。
あなたがAndroidドキュメントで見ることができるように:
Activityクラスは「ContextThemeWrapper」から拡張されたもので、これは「ContextWrapper」から拡張されたもので、「ContextWrapper」から拡張されたものです。
だから、はい、アクティビティはコンテキストを拡張します!