zoukankan      html  css  js  c++  java
  • Android Activity学习笔记(一)

    Activity为Android应用的四大组件之一,提供界面来与用户完成交互等操作。其中Activity的生命周期的知识这里做个笔记。

    Activity的生命周期由以下几个部分组成:

    1.onCreate :Activity Launch时调用,完成布局和资源的设置操作。

    2.onStart :Activity开始可见,但是与用户之间不能交互(下面有例子说明)。

    3.onResume :Activity可见,并且此时可以与用户完成交互操作。

    4.onPause :Activity将不可见或则有其他如Dialog Activity在foreground时调用。

    5.onStop :Activity完全不可见时调用,Activity进入后台。

    6.onDestroy :Activity在后台,被finish or kill时调用。

    7.onRestart :在onStop状态下重新变为可见时调用。

    Activity的生命周期图如下图所示:

     为了方便理解,写一段简单的代码来了解Activity的生命周期:

    package com.example.steve.myfirstapp;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "MyFirstApp";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);//该布局文件中只有一个TextView,默认值为“Hello World!”
            Log.d(TAG, "onCreate");
        }
    
        @Override
        protected void onRestart() {
            Log.d(TAG, "onRestart");
            super.onRestart();
        }
    
        @Override
        protected void onStart() {
            Log.d(TAG,"onStart");
            /*让进程sleep 5s
            try {
                Thread.currentThread().sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Log.d(TAG,"onStart Sleep 5s");
            */
            super.onStart();
        }
    
        @Override
        protected void onResume() {
            Log.d(TAG,"onResume");
            super.onResume();
        }
    
        @Override
        protected void onPause(){
            Log.d(TAG,"onPause");
            super.onPause();
        }
    
        @Override
        protected void onStop(){
            Log.d(TAG,"onStop");
            super.onStop();
        }
    
        @Override
        protected void onDestroy() {
            Log.d(TAG,"onDestroy");
            super.onDestroy();
        }
    
    } 

     实际操作过程中,当打开Android应用时,MainActivity会经过onCreate -> onStart -> onResume三个阶段,此时若按home键或则back按键,MainActivity会经过onPause -> onStop这两个阶段,再进入此MainActivity时,会再调用onRestart -> onStart -> onResume三个阶段。

    通过Recent按键调出此Android应用后,再尝试清除该Android应用后,MainActivity最后会调用到onDestory阶段。

    其中在onStart中有注释掉一段代码,这段代码主要是用来让主线程Sleep 5s,这个操作时用来理解上文所说“Activity可见,但是不可与用户交互”。

    当打开Android应用时,MainActivity会以此进入onCreate -> onStart -> onResume阶段。当尝试在onStart阶段对主线程做delay操作时,此时Activity呈现的样子如下图:

    此时Activity为可见状态,但是其无法与用户交互。当进入onResume阶段时,此时Activity显示的内容如下图所示:

    此时,Activity不但可见,而且还可以与用户完成交互(如果在layout.xml文件里添加Button会更方便理解)。

    参考文献:https://github.com/codepath/android_guides/wiki/Activity-Lifecycle

  • 相关阅读:
    C# 上传辅助方法
    C# 经纬度计算
    C#Excel导出反射数据集
    C# 数据模板导出
    C# 百度经纬度获取地址信息
    【平台开发】— 5.后端:代码分层
    【平台开发】— 4.mysql建库建表
    【平台开发】— 3.前端开发思路
    【平台开发】— 2.前端:vue-element-admin
    【平台开发】— 1.开篇
  • 原文地址:https://www.cnblogs.com/Peter-Chen/p/6054076.html
Copyright © 2011-2022 走看看