java this context_getContext(),getApplicationContext(),getBaseContext()和“this”之间的区别...

“上下文是什么”这个问题是Android世界中最难的问题之一 .

Context定义了访问系统资源,检索应用程序的静态资产,检查权限,执行UI操作等的方法 . 从本质上讲, Context 是 生产环境 中神对象反模式的一个例子 .

当我们应该使用哪种 Context 时,它变得非常复杂,因为除了作为God Object之外, Context 子类的层次结构树残忍地违反了Liskov Substitution Principle .

This blog post试图在不同情况下总结 Context 类的适用性 .

让我从该帖子中复制主表以确保完整性:

| |应用|活动|服务| ContentProvider | BroadcastReceiver |

|显示对话框|没有|是的|没有|没有|没有|

|开始活动| NO¹|是的| NO¹| NO¹| NO¹|

|布局通胀| NO²|是的| NO²| NO²| NO²|

|启动服务|是的|是的|是的|是的|是的|

|绑定到服务|是的|是的|是的|是的|没有|

|发送广播|是的|是的|是的|是的|是的|

|注册BroadcastReceiver |是的|是的|是的|是的| NO³|

|加载资源值|是的|是的|是的|是的|是的|

应用程序可以从此处启动活动,但它需要创建新任务 . 这可能适合特定的用例,但可以在您的应用程序中创建非标准的后台堆栈行为不推荐或认为是良好做法 . 这是合法的,但通货膨胀将使用您运行的系统的默认主题完成,而不是您的应用程序中定义的内容 . 如果接收方为空,则允许在Android 4.2及更高版本上用于获取粘性广播的当前值 . - 截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值