生离死别之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>
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>
相关文章推荐
- 最长公共子串 Longest-Common-Substring(LCS)
- spring的aop 基于schema
- spring的aop 基于schema
- LeetCode : Letter Combinations of a Phone Number [java]
- 高性能WEB开发(6) - web性能測试工具推荐
- 四则运算
- 正则 校验邮箱
- 数据结构——二叉树学习
- mongdb 安装 配置及使用 (windows 2.0.2版)
- Thrift在Windows及Linux平台下的安装和使用示例
- 正则 过滤敏感字
- 穷举——排日期
- hdu 5112 A Curious Matt(排序)
- hdu 1017
- 彩票项目总结
- 计算机技术与软件专业技术资格(水平)考试简介
- 正则2 过滤小说网站源码中带有html标签
- 003.unity获取输入
- Android Mediaplayer 三种从资源文件中获取数据播放
- 通过本地的eclipse中的java访问远程Linux中的HDFS需要注意的问题.