Android-Activity生命周期和iOS-ViewController生命周期

程序猿的开心一刻

下面哪种面向对象的方法可以让你变得富有?
a,继承;b,封装;c,多态;d,抽象。

请在评论区输入答案,接下来进入正题


做过移动开发的工作有一年多,没有养成分享知识给他人的习惯,今天来说一说Android-Activity生命周期和iOS-ViewController生命周期。

一、Android-Activity生命周期

Activity生命周期图

Android-Activity生命周期和iOS-ViewController生命周期_第1张图片
Activity.png

Activity生命周期回调方法汇总

Android-Activity生命周期和iOS-ViewController生命周期_第2张图片
Activity-1.png

Activity生命周期 演示动画

Android-Activity.gif

Activity生命周期演示-操作顺序及执行对应回调方法

启动程序——>点击手机下方返回键——>点击程序图标——>点击home键——>点击程序图标——>点击手机下方返回键


Android-Activity生命周期和iOS-ViewController生命周期_第3张图片
Snip20170328_2.png

Activity程序代码

public class MainActivity extends AppCompatActivity{
    String msg = "LangYaSoldier:";

    //当Activity首次启动时会调用onCreate()方法,可以理解为Java中的main()方法
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //绑定布局文件
        setContentView(R.layout.activity_main);
        Log.d(msg,"程序执行onCreate()方法");
    }

    //当Activity即将变得可见时会调用onStart()方法
    @Override
    protected void onStart() {
        super.onStart();
        Log.d(msg,"程序执行onStart()方法");
    }

    //当Activity已经变得可见时会调用onResume()方法
    @Override
    protected void onResume() {
        super.onResume();
        Log.d(msg,"程序执行onResume()方法");
    }

    //////当其他的Activity已经获得了焦点时会调用onPause()方法
    @Override
    protected void onPause() {
        super.onPause();
        Log.d(msg,"程序执行onPause()方法");
    }
    // 当Activity不再可见的时候会调用onStop()方法
    @Override
    protected void onStop() {
        super.onStop();
        Log.d(msg, "程序执行onStop()方法");
    }

    // 当Activity被销毁的时候会调用onDestroy()方法
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(msg, "程序执行onDestory()方法");
    }
}

二、iOS-ViewController生命周期

ViewController生命周期 演示动画

ios生命周期.gif

iOS-ViewController生命周期演示-操作顺序及执行对应回调方法

启动程序——>点击控制器一按钮显示控制器二 ——>点击控制器二按钮显示控制器一 ——>点击控制器一按钮显示控制器二 ——>点击控制器二按钮显示控制器一


Android-Activity生命周期和iOS-ViewController生命周期_第4张图片
Snip20170328_3.png

ViewController程序代码

@implementation ViewController
//此方法只加载一次,类中成员对象和变量的初始化都会放在这个方法中
- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"控制器一:程序执行viewDidLoad()方法");
    self.view.backgroundColor = [UIColor blueColor];
    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
    button1.frame = CGRectMake(0, 50, 320, 30);
    button1.titleLabel.font = [UIFont systemFontOfSize:17];
    [button1 setTitle:@"点击按钮,去显示控制器二" forState:UIControlStateNormal];
    button1.backgroundColor = [UIColor blackColor];
    [button1 addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button1];
}
//将要展示
-(void)viewWillAppear:(BOOL)animated{
    NSLog(@"控制器一:程序执行viewWillAppear()方法");
}
//已经展示
-(void)viewDidAppear:(BOOL)animated{
    NSLog(@"控制器一:程序执行viewDidAppear()方法");
}
//将要消失
-(void)viewWillDisappear:(BOOL)animated{
    NSLog(@"控制器一:程序执行viewWillDisappear()方法");
}
//已经消失
-(void)viewDidDisappear:(BOOL)animated{
    NSLog(@"控制器一:程序执行viewDisDisappear()方法");
}
//被释放
-(void)dealloc{
    NSLog(@"控制器一:程序执行dealloc()方法");
}
-(void)click{
    NSLog(@"点击控制器一按钮显示控制器二");
    [self presentViewController:[[SecondViewController alloc] init] animated:YES completion:nil];
}
@end

小弟QQ:2544100193 欢迎交流

你可能感兴趣的:(Android-Activity生命周期和iOS-ViewController生命周期)