您的位置:首页 > 其它

生离死别之Activity生命周期测试及结果分析

2016-03-06 13:49 225 查看
生离死别 之   

Activity生命周期测试及结果分析

一:Android提供了很多Activity的生命周期函数,比如

1>  onCreate(),

2>  onStart()、

3>  onResume()、

4>  onPause()、

5>  onStop()、

6>  onDestroy()等。

 

二:执行顺序。

我们用一个简单的例子来测试一下。

1:onCreate():创建Activity调用,用于Activity的初始化,在Activity生命周期中只执行一次,适用于实例化对象

:2:onStart():Activity:在屏幕上对用户可见时调用

:3:onResume():Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部

:4:onPause():Activity被暂停时调用,被其他的Activity挡在后面,这里可以做一些清理和保存工作

:5:onStop():Activity被停止或者Activity变成不可见时调用

6:onDestroy():Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候

所有的执行结果;

 

初始的时候,即在加载程序的时候执行的方法。有oncreate()方法,onstart()方法,onresume()方法。顺序执行这三个方法。

 

当点击测试按钮的时候,开始跳转界面。函数执行如下。

 

 

点击返回按钮之后的执行结果如下,函数调用顺序。

 

 

思想总结

任何事物都存在声明周期。对于activity的生命周期,最常见的就是几种;onCreate(),onStart()、onResume()、onPause()、onStop()、onDestroy()等。他们对应的意义不同,执行时间也是不同的。

onResume()和onPause()相对应。

onStart()和onStop()相对应。

执行代码:

第一个类:MainActivity 类

package com.example.teststatues;

 

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class MainActivity extends Activity {

 

public Button click;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        System.out.println("开始加载初始界面......");

     System.out.println("测试MainActivity的onCreate()方法《1》");

        click=(Button)findViewById(R.id.click);

        click.setOnClickListener(mylistener);

    }

   

    protected void onStart() {

     super.onStart();

     System.out.println("测试MainActivity的onStart()方法《2》");

     }

    protected void onResume() {

     super.onResume();

     System.out.println("测试MainActivity的onResume()方法《3》");

     }

    protected void onPause() {

     super.onPause();

     System.out.println("测试MainActivity的onPause()方法《4》");

     }

    protected void onStop() {

     super.onStop();

     System.out.println("测试MainActivity的onStop()方法《5》");

     }

    protected void onDestroy() {

     super.onDestroy();

     System.out.println("测试MainActivity的onDestroy()方法《6》");

     }

 

OnClickListener mylistener=new OnClickListener() {

public void onClick(View arg0) {

System.out.println("页面跳转......");

Intent intent=new Intent(MainActivity.this,SecondActivity.class);

startActivity(intent);

}

};

}

package com.example.teststatues;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class SecondActivity extends Activity{

 

public Button myclick;

protected void onCreate(Bundle savedInstanceState){

System.out.println("开始加载第二个界面......");

System.out.println("测试SecondActivity的onCreate()方法《11》");

super.onCreate(savedInstanceState);

setContentView(R.layout.secondactivity);//加载首页视图

myclick=(Button)findViewById(R.id.myclick1);

myclick.setOnClickListener(mylistener);

}

    public void onStart() {

     super.onStart();

     System.out.println("测试SecondActivity的onStart()方法《22》");

     }

    public void onResume() {

     super.onResume();

     System.out.println("测试SecondActivity的onResume()方法《33》");

     }

    public void onPause() {

     super.onPause();

     System.out.println("测试SecondActivity的onPause()方法《44》");

     }

    public void onStop() {

     super.onStop();

     System.out.println("测试SecondActivity的onStop()方法《55》");

     }

    public void onDestroy() {

     super.onDestroy();

     System.out.println("测试SecondActivity的onDestroy()方法《66》");

     }

OnClickListener mylistener=new OnClickListener(){

public void onClick(View arg0) {

System.out.println("返回初始界面......");

Intent intent=new Intent(SecondActivity.this,MainActivity.class);

startActivity(intent);

}

};

}

 

 

 <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginLeft="120dp"

        android:layout_marginTop="46dp"

        android:text="@string/hello_world" />

 

    <Button

        android:id="@+id/click"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="@string/button_click" />

 

<TextView

        android:layout_width="90dp"

        android:layout_height="wrap_content"

        android:text="@string/hello_world" />

 

    <Button

        android:id="@+id/myclick1"

        android:layout_width="169dp"

        android:layout_height="wrap_content"

        android:text="@string/myclick" />

 

 

<?xml version="1.0" encoding="utf-8"?>

<resources>

 

    <string name="app_name">TestStatues</string>

    <string name="action_settings">Settings</string>

    <string name="hello_world">欢迎!</string>

<string name="button_click">测试</string>

<string name="myclick">返回</string>

</resources>

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: