如何从上下文中获取应用程序

How to get Application from Context

有什么方法可以让我从 Context 获取应用程序。我注意到 activity 和服务有 getApplication() 方法,但 Context 没有。

背景:

我是 using/extending GCMBaseIntentService 和

protected abstract void  onMessage (Context context, Intent intent) 

给我一个上下文作为参数。我想获取 Application 对象,以便将其向下转换为 MyApplication 并检索一些变量

谢谢

Context#getApplicationContext 将 return 您的 Application 实例。

对于那些在 kotlin 中寻找答案的人:

        @BindingAdapter("app:setSelectArea")
        @JvmStatic
        fun setSelectArea(view: ImageView, mContext: ContextX){
            view.setOnClickListener {
                val application = view.context.applicationContext as Application
                val viewModel:KnowledgeViewModel by lazy { KnowledgeViewModel(application) }
                val mKnowledge = Knowledge(
                    "",
                    "abcdefg test",
                    ""
                )
                viewModel.firebaseInsertKnowledge(mKnowledge)
            }
        }
val application : Application = context.applicationContext as Application