zoukankan      html  css  js  c++  java
  • activity的生命周期

    学习android开发这么久对于activity的生命周期还没有仔细思考过,所以,我大致的把这些东西整理一下,希望通过这使自己理解的更透彻点吧!

    首先看一下Activity生命周期图和它的的四个阶段 

    它的的四个阶段

    1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。 
    2. Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
    3. Activity重新获得焦点:如果Activity重新获得焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
    4. 关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。

    现在通过一个例子来了解它的生命周方法在四个阶段的用法:

     七个生命周期方法如下,它们的作用见下面示例方法注释中

       protected void onCreate(Bundle savedInstanceState)

       protected void onStart()

       protected void onResume()

       protected void onPause()

       protected void onStop()

       protected void onRestart()

       protected void onDestroy()  

    示例代码:

    [java] view plaincopy
     
    1. package com.liu.activity;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.util.Log;  
    6.   
    7. public class MyActivity extends Activity {  
    8.   private  static final String lifeTag = "Activity生命周期";  
    9.       
    10.     //当Activity第一次被创建时调用,我们可以在这进行初始化操作  
    11.     public void onCreate(Bundle savedInstanceState) {  
    12.         super.onCreate(savedInstanceState);  
    13.         setContentView(R.layout.main);  
    14.         Log.d(lifeTag,"---->oncreate()被执行");  
    15.     }  
    16.     //onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用  
    17.     protected void onStart() {  
    18.         super.onStart();  
    19.         Log.d(lifeTag,"---->onStart()被执行");  
    20.     }  
    21.       
    22.     //onResume()方法在Activity即将与用户交互时调用  
    23.     protected void onResume() {  
    24.         super.onResume();  
    25.         Log.d(lifeTag,"---->onResume()被执行");  
    26.     }  
    27.       
    28.     //当Activity从stopped状态启动时会调用onRestart(),后面总是调用onStart()方法  
    29.     protected void onRestart() {  
    30.         super.onRestart();  
    31.         Log.d(lifeTag,"---->onRestart()被执行");  
    32.     }  
    33.       
    34.     //在一个Activity启动另一个Activity时调用,它通常被用来持久化数据、停止动画或其他耗费资源的动作,  
    35.     //下一个Activity必须等待这个方法返回后在启动,所以在这里做过多的操作  
    36.     protected void onPause() {  
    37.         super.onPause();  
    38.         Log.d(lifeTag,"---->onPause()被执行");  
    39.     }  
    40.       
    41.     //onStop()方法在一个新的Activity启动、其他的Activity切换到前台、当天Activity被销毁时都会被调用  
    42.     protected void onStop() {  
    43.         super.onStop();  
    44.         Log.d(lifeTag,"---->onStop()被执行");  
    45.     }  
    46.   
    47.     //Activitybe被销毁时调用  
    48.     protected void onDestroy() {  
    49.         super.onDestroy();  
    50.         Log.d(lifeTag,"---->onDestroy()被执行");  
    51.     }  
    52.       
    53. }  

    启动程序调用的方法如下:

    当按下拨号键使activity失去焦点调用的方法如下:

    当按下返回键使Activity获得焦调用的方法如下,:

    关闭Avtivity时调用的方法如下:

  • 相关阅读:
    PAT (Basic Level) Practise 1013 数素数
    PAT (Basic Level) Practise 1014 福尔摩斯的约会
    codeforces 814B.An express train to reveries 解题报告
    KMP算法
    rsync工具
    codeforces 777C.Alyona and Spreadsheet 解题报告
    codeforces 798C.Mike and gcd problem 解题报告
    nginx + tomcat多实例
    MongoDB副本集
    指针的艺术(转载)
  • 原文地址:https://www.cnblogs.com/ArRan/p/3636899.html
Copyright © 2011-2022 走看看