如何从Context获取应用程序

时间:2015-02-10 19:38:30

标签: android google-cloud-messaging

有没有办法从Context获取应用程序。我注意到activity和service有getApplication()方法,但Context没有。

背景

我正在使用/扩展GCMBaseIntentService和

protected abstract void  onMessage (Context context, Intent intent) 

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

由于

3 个答案:

答案 0 :(得分:23)

Context#getApplicationContext将返回您的Application个实例。

答案 1 :(得分:2)

val application : Application = context.applicationContext as Application

答案 2 :(得分:0)

对于那些在 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)
            }
        }