Android 奇思妙想之 new Activity()

来源:互联网 发布:视觉检测软件免费 编辑:程序博客网 时间:2024/04/28 23:55

奇思妙想

    接触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
原创粉丝点击