2015-02-10 58 views
11

有没有一种方法可以从上下文获取应用程序。我注意到activity和service有getApplication()方法,但Context没有。如何从上下文获得应用程序

背景:

我使用/延长GCMBaseIntentService和

protected abstract void onMessage (Context context, Intent intent) 

给了我一个上下文作为参数。我想获得Application对象,所以我可以把它向下转换到所有MyApplication和检索一些变量

感谢

+0

(YourApplicationClass)context.getApplicationContext() – Leonidos 2015-02-10 19:40:41

回答

21

Context#getApplicationContext将返回你Application实例。

+0

怎么会这样?文档说它将返回当前进程的单个全局应用程序对象的**上下文**。返回类型是'Context',而不是'Application'。 'Context'是'Application'的祖先类,但是你怎么知道'getApplicationContext()'会返回'Application'实例?我怀疑你可能是对的,但我希望看到一个同意的权威来源。 – LarsH 2017-10-25 15:10:47

+2

例如见https://stackoverflow.com/questions/5018545/getapplication-vs-getapplicationcontext它说,'getApplicationContext()'会不会** **总是返回相同的对象作为你的'Application'实例。 – LarsH 2017-10-25 15:23:10

相关问题