Activity的生命周期函数 .

来源:互联网 发布:在线客服源码下载 编辑:程序博客网 时间:2024/05/29 18:26

说明:初探activity 生命周期的7个函数。

例子:在MainActivity里面添加一个按钮,触动按钮,跳转到OtherActivity,观察控制台的输出。

先来看看这几个函数:


他们的流程可以看看官网提供的流程图:


下面这张金字塔型的图可能更直观一些:


关看图没意思,看看程序运行起来的效果先。

步骤:1、在MainActivity里面复写其他6个函数。并且定义一个OtherActivity类,在activity_main添加一个按钮,跳转到OtherActivity,并为OtherActivity定义一个布局文件Other.xml。(这个在上一篇已经说过方法了,在这里就不再重复了。)

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. package com.away.b_02_lifecycle;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.Menu;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10.   
  11. public class MainActivity extends Activity {  
  12.   
  13.     private Button button;   
  14.   
  15.     @Override  
  16.     protected void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.activity_main);  
  19.         button = (Button) findViewById(R.id.Button);  
  20.         button.setOnClickListener(new ButtonListener());  
  21.         System.out.println("MainActivity:OnCreate");  
  22.     }  
  23.   
  24.     class ButtonListener implements OnClickListener {  
  25.         @Override  
  26.         public void onClick(View v) {  
  27.             Intent intent = new Intent();  
  28.             intent.setClass(MainActivity.this, OtherActivity.class);  
  29.             startActivity(intent);  
  30.         }  
  31.     }  
  32.   
  33.     @Override  
  34.     protected void onDestroy() {  
  35.         super.onDestroy();  
  36.         System.out.println("MainActivity:onDestroy");  
  37.     }  
  38.   
  39.     @Override  
  40.     protected void onPause() {  
  41.         super.onPause();  
  42.         System.out.println("MainActivity:onPause");  
  43.     }  
  44.   
  45.     @Override  
  46.     protected void onRestart() {  
  47.         super.onRestart();  
  48.         System.out.println("MainActivity:onRestart");  
  49.     }  
  50.   
  51.     @Override  
  52.     protected void onResume() {  
  53.         super.onResume();  
  54.         System.out.println("MainActivity:onResume");  
  55.     }  
  56.   
  57.     @Override  
  58.     protected void onStart() {  
  59.         super.onStart();  
  60.         System.out.println("MainActivity:onStart");  
  61.     }  
  62.   
  63.     @Override  
  64.     protected void onStop() {  
  65.         super.onStop();  
  66.         System.out.println("MainActivity:onStop");  
  67.     }  
  68. }  
2、在OhterActivity里面也复写7个函数。

直接看结果:直接在控制台观察,启动MainActivity→OtherActivity的过程,函数的调用时机。

启动MainActivity:


点击按钮,跳转到OtherActivity:


当点击后退按钮,退回到MainActivity的时候:


这里涉及到back stack:

1、启动第一个Activity,backstack里面就有了第一个Activity对象。


2、启动第二个Activity,backstack里面增加了第二个Activity对象。


3、启动第三个Activity,backstack里面增加了第三个Activity对象。如果按返回键,返回到第二个Activity,那么,在backstack里面第三个Activity对象就会被销毁。以此类推,backstack遵循先进先出的顺序。


写完了。深夜写的,原创不易,转载标明出处~~晚安。


0 0
原创粉丝点击