• Android 四大组件之Activity生命周期


    写这篇博文之前,已经对android有一定的了解和认识。这篇博文主要讲述android的Activity的生命周期,这是android开发者必须掌握的知识。android的Activity组件拥有7个生命周期:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestory()、onReStart()。

    这7个生命周期分别在4个特定阶段进行调用。

    开始Activity:当Activity开始运行的时候依次执行3个生命周期:onCreate、onStart、onResume。

    Activity失去焦点:如果从一个Activity进入另外一个焦点,当前Activity执行:onPause、onStop。

    Activity重新获得焦点:返回此Activity的时候:onReStart、onStart、onResume。

    关闭Activity:Activity·被关闭:onPause、onStop、onDestory。

    Activity生命周期流程图:

    从图中看出Activity生命周期的两层循环:1.onResume、onPause、onResume;2.onStop、onReStart、onStart、onResume、onPause、onStop

    Activity有三种生命周期:

    整体生命周期:onCreate、onStart、onResume、onPause、onStop、onDestory

    可视生命周期:onStart、onResume、onPause、onStop

    焦点生命周期:onResume、onPause

    代码验证android的生命周期

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.d("test", "onCreate");
        }
        @Override
        protected void onStart() {
            // TODO Auto-generated method stub
            super.onStart();
            Log.d("test", "onStart");
        }
        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            Log.d("test", "onResume");
        }
        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            Log.d("test", "onPause");
        }
        @Override
        protected void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            Log.d("test", "onStop");
        }
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            Log.d("test", "onDestory");
        }
        @Override
        protected void onRestart() {
            // TODO Auto-generated method stub
            super.onRestart();
            Log.d("test", "onRestart");
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    生命周期测试

    程序刚开始运行

    程序失去焦点

  • 相关阅读:
    <经验杂谈>C#/.Net中xml的Serialization序列化与DeSerializetion反序列化
    <经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数
    应用highcharts做直观数据统计
    ASP.net获取当前页面的文件名,参数,域名等方法
    C#中唯一标识符GUID的一些知识点
    理清fineuploader无刷新上传的一些事
    webform开发经验(一):Asp.Net获取Checkbox选中的值
    C#/.Net Post获取数据流的一种简单写法
    C#中的一种按日期分文件夹的日志写法
    C# Datatable导出Excel方法
  • 原文地址:https://www.cnblogs.com/ggz19/p/4095382.html
Copyright © 2020-2023  润新知