为什么android开发一般不new一个Activity或者Service呢?

为什么android开发一般不new一个Activity或者Service呢?

阅读 6k
3 个回答

这个问题问的好,Android的四大组件都建立在系统Binder机制之上,当启动一个组件的时候并不是单纯的建立一个组件对象,而是一系列的framework层初始化、Binder机制注册等工作,这也是为什么四大组件有别于其它普通类有生命周期的实现。如果你查看四大组件源码,四大组件类都是没有构造器的,也就是说默认构造器是无法完成组件初始化及启动工作的。直接new Activity或Service就好比new Thread而没有后续start,仅仅只是生成一个对象而已。这只是很肤浅的理解了,更深层次的理解可以去看Binder机制和研读组件代码了。

控制反转

app开发者负责定义Activity的子类, 框架负责使用(包括new)这些子类

生命周期。不同阶段的生命周期,做不同的事情,这个是android开发框架决定的,同时,andriod来自动管理生命周期

推荐问题
宣传栏