As far as I understand:
Context is the Base Object. So every Activity same as Application derives from Context. This means that every Activity and every Application
IS a Context
;
From developer.android.com
Activity
java.lang.Object
? android.content.Context
? android.content.ContextWrapper
? android.view.ContextThemeWrapper
? android.app.Activity
And Application
java.lang.Object
? android.content.Context
? android.content.ContextWrapper
? android.app.Application
An Application context lasts, as long as your app is alive, while the Activity context dies with your Activity (it is not valid after onDestroy
of that Activity).
So if you need the Context across Activities (i.e. in a Singleton) you will be better off using an Application context.
Usually on Android Framework methods where a context is expected, it makes no difference which one you pass. But be always aware of MemoryLeaks if you're keeping long-living References to a Context
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…