可以参考这篇文章
https://medium.com/@ali.muzaffar/which-context-should-i-use-in-android-e3133d00772c
Context
|— ContextWrapper
|— —Application
|— —ContextThemeWrapper
|— — — —Activity
|— —Service
|— — — IntentService
Application的Context对于Activity而言没有返回栈
Context一般用来access system level resources (getSystemService) and global app level resources(theme, assets).
考虑什么时候用ApplicationContext,什么时候用Activity的Context,ThemedContext
如果没有主题的需求,需要持有Context的对象是在程序全生命周期都存在的,那么可以给ApplicationContext。这个时候不要给短命的ActivityContext,这些Context如果你用强引用去连接它,会容易导致Activity对象不能被回收,如果你用WeakReference又会导致每次用的时候要判一下null,很是Relax。
否则,如果有主题的需求,或者是Inflate layout的需求,或者是把Context给一些短命对象,使用Activity Context是没有关系的。