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时调用的方法如下:

  • 相关阅读:
    今天做了个小项目
    了解类与对象
    装机时键盘选择失误?教你修改kali Linux键盘到美式。
    一些模塊的用法
    你也是全员模块?
    金额保留2位小数 xx.00
    maven项目统一管理版本
    启动项目报错——找不到或无法加载主类 io.vertx.core.Launcher
    以jar包方式启动
    支付业务接口功能(二)
  • 原文地址:https://www.cnblogs.com/ArRan/p/3636899.html
Copyright © 2011-2022 走看看