美文网首页Android studio编程
Android-Activity生命周期和iOS-ViewCon

Android-Activity生命周期和iOS-ViewCon

作者: 狼牙战士 | 来源:发表于2017-03-28 14:11 被阅读359次

    程序猿的开心一刻

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

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


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

    一、Android-Activity生命周期

    Activity生命周期图

    Activity.png

    Activity生命周期回调方法汇总

    Activity-1.png

    Activity生命周期 演示动画

    Android-Activity.gif

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

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


    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生命周期演示-操作顺序及执行对应回调方法

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


    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-ViewCon

        本文链接:https://www.haomeiwen.com/subject/ocafottx.html