android中activity,window,view的关系-创新互联
今天经过学习和思考后,终于弄清了android中activity,window和view的关系。
站在用户的角度思考问题,与客户深入沟通,找到利津网站设计与利津网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟空间、企业邮箱。业务覆盖利津地区。本来打算附上一张完整的uml图的,结果因为自己还不会用画图工具,所以只能把提到的类画成图奉上,至于类与类之间的关系,就由文字叙述。
首先在我们启动一个activity的时候(startactivity())最终会调用到activity的一个成员函数attach(),这个函数会通过PolicyManager这个类实现一个IPolicy接口。
IPolicy接口实现了Policy这个类,在Policy这个类中,有一个很重要的将会被调用到的函数makenewwindow(Context),这个函数将会返回一个phonewindow对象。
phonewindow类是window类的子类,它在实例化的时候,会构造一个viewgroup对象,viewgroup类中有一个重要的成员函数是addview(view),该函数会在调用setcontentview()后被调用到,也就是说,view是通过addview()加载后才被显示在屏幕上。viewgroup类显然是继承自view类。
再简要说一下layoutinflator这个类,它主要是有一个重要的成员函数inflator(),该类通过加载一个布局文件,返回一个view对象。
现在说说三者之间的关系,其实通过上面对这些类的关系,以及从这些类的命名已经可以看出一些东西了,我用一个不是太恰当的比喻说明,一个画手在画画,他拥有一块画布和一支画笔,在这三者的关系中,activity就像是这个画手,他操控着一切,包括画笔和画布,而画布就是window,这只能画出各种图画的画笔则像viewgroup这个类(因为它有一个重要的函数addview()),那么view是什么呢?view是各种图画,如一座山,一条河,一只小鸟等各种具体的图画。
一起学习,有错误请指出。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:android中activity,window,view的关系-创新互联
标题链接:http://cdiso.cn/article/gpipe.html