我能否从Context中获取应用程序?我注意到Activity和Service有getApplication()方法,但Context没有。
背景:
我正在使用/扩展GCMBaseIntentService和
protected abstract void onMessage (Context context, Intent intent)
给我一个上下文参数。我想获得Application对象,以便将其向下转换为MyApplication并检索一些变量
谢谢
我能否从Context中获取应用程序?我注意到Activity和Service有getApplication()方法,但Context没有。
背景:
我正在使用/扩展GCMBaseIntentService和
protected abstract void onMessage (Context context, Intent intent)
给我一个上下文参数。我想获得Application对象,以便将其向下转换为MyApplication并检索一些变量
谢谢
Context#getApplicationContext
会返回您的 Application
实例。
Context
,而不是Application
。Context
是Application
的祖先类,但你怎么知道getApplicationContext()
会返回Application
实例?我怀疑你是对的,但我想看到一个同意的权威来源。 - LarsHgetApplicationContext()
并不总是返回与您的 Application
实例相同的对象。 - LarsHval application : Application = context.applicationContext as 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)
}
}