简单粗暴的理解(类比学习大法):android 的activity 等价于 iOS的 UIControllerView。android的Activity与iOS的UIControllerView都是相当于一个屏幕,可以用来加载各种控件。
android的Activity生命周期:
onCreate(Bundle savedInstanceState) {// Activity第一次创建时被调用,只执行一次,主要用于加载布局}
onStart(){// Activity在屏幕上对用户可见时调用}
onResume(){// 在Activity准备开始与用户交互时调用}
onPause(){// 当前Activity不再位于活动堆栈的顶部时调用,例如:由一个Activity转到另一个Activity、锁屏等。Activity和Activity都是压栈进来的,所以是有层级关系的。}
onStop(){// Activity被停止并转为不可见阶段时调用}
onRestart(){// 重新启动已经停止的 Activity 时调用}
onDestroy(){// Activity 被完全从系统内存中移除时调用}
image.png
iOS的UIControllerView生命周期:
- (void)init {// 初始化方法}
- (void)loadView {// 开始加载视图的初始化方法,在viewcontroller的生命周期中只会被调用一次}
- (void)viewDidLoad {// 控制器的view创建完毕后就会调用该方法。初始化控件可以写在该方法中}
- (void)viewWillAppear:(BOOL)animated {// 对象的视图即将加入窗口时调用}
- (void)viewDidAppear:(BOOL)animated {// 对象的视图已经加入到窗口时调用}
- (void)viewWillDisappear:(BOOL)animated {// 对象的视图即将消失、被覆盖或是隐藏时调用;}
- (void)viewDidDisappear:(BOOL)animated {// 对象的视图已经消失、被覆盖或是隐藏时调用;}
image.png
android和iOS的界面跳转
Android
: Activity可以使用Intent,Fragment使用Bundle
iOS
:导航控制器可以使用pushViewController跳转到下个界面,非导航控制器可以使用presentViewController可以使用跳转到下个界面。
android和iOS的正向传值
Android
: 通过startActivityForResult()启动和onActivityResult()接收。
iOS
: 可以通过定义属性实现。
android和iOS的回调传值(反向传值)
Android
: 通过startActivityForResult()启动和onActivityResult()接收。
iOS
: 可以通过代理(delegate)、通知(Notification)、Block。
网友评论