Android 奇思妙想之 new Activity()

奇思妙想

    接触Android 也有很久了,不知大家有没有想过Activity可以new吗?Android由java语言开发,Activity本质也是一个对象,new出来有什么问题呢?最近一直在想这个问题!

看了一些解释后才算明白,Android程序与java程序不一样,随随便便打写一个类,在main()方法里面就能运行。Android是基于组件化设计的,组件的运行需要一套完整的Android的环境的,在这个环境下Activity,Service才能运行,而这些组件不能以new的方式创建实例,它需要相应的上下文环境,也就是我们Context。可以说Context是这些Android组件运行的一个核心类。

Context

Context是什么,我们经常所说的上下文,我们可以理解为这个对象在程序中所处的一个环境,Context在我们获取View,获得系统服务,加载资源都要用到。

如果还觉得Context比较抽象,难以理解,我们可以打个比方:

    把一个Androidc程序看作是一部电影,Android的Activity,Service等四大组件可以看作是电影的4大主演(4个大明星,表演功底很强),他们是剧组(系统)开始就定好了的,不是随随便便在大街上拉个人(new 对象)就能胜任的。然后他们拍摄电影,需要通过镜头(Context)才能向观众展示作品。 
    对于TextView,ImageView他们就好比配角或者群众演员,他们的作用就不是那么大,随便就可以找到(new)替代者,同样,虽然他们不起眼但是要需要在镜头下(Context)展示自己。

上面的比喻虽然不是很恰当,但是可以帮助理解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值