为什么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来自动管理生命周期

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏