package com.example.activity_04;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 FirstActivity extends Activity {    /** Called when the activity is first created. */private Button myButton;    @Override    public void onCreate(Bundle savedInstanceState) {    System.out.println("FirstAcvity ---> onCreate");        super.onCreate(savedInstanceState);        setContentView(R.layout.first);        myButton = (Button)findViewById(R.id.myButton);        myButton.setText("启动第二个Activity");        myButton.setOnClickListener(new ButtonOnClickListener());    }@Overrideprotected void onDestroy() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onDestory");super.onDestroy();}@Overrideprotected void onPause() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onPause");super.onPause();}@Overrideprotected void onRestart() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onRestart");super.onRestart();}@Overrideprotected void onResume() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onResume");super.onResume();}@Overrideprotected void onStart() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onStart");super.onStart();}@Overrideprotected void onStop() {// TODO Auto-generated method stub    System.out.println("FirstAcvity --->onStop");super.onStop();}class ButtonOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(FirstActivity.this,SecondActivity.class);FirstActivity.this.startActivity(intent);}}}
package com.example.activity_04;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 {private Button secondButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {System.out.println("SecondActivity--->onCreate");super.onCreate(savedInstanceState);setContentView(R.layout.second);secondButton = (Button)findViewById(R.id.secondButton);secondButton.setOnClickListener(new ButtonOnClickListener());}@Overrideprotected void onDestroy() {System.out.println("SecondActivity--->onDestory");super.onDestroy();}@Overrideprotected void onPause() {System.out.println("SecondActivity--->onPause");super.onPause();}@Overrideprotected void onRestart() {System.out.println("SecondActivity--->onRestart");super.onRestart();}@Overrideprotected void onResume() {System.out.println("SecondActivity--->onResume");super.onResume();}@Overrideprotected void onStart() {System.out.println("SecondActivity--->onStart");super.onStart();}@Overrideprotected void onStop() {System.out.println("SecondActivity--->onStop");super.onStop();}class ButtonOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(SecondActivity.this,FirstActivity.class);SecondActivity.this.startActivity(intent);}}}

上面的两个示例程序演示Activity的生命周期

因为有两个Activity,所以要在AndroidManifest.xml当中进行注册

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.activity_04"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.example.activity_04.FirstActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity><activity android:name=".SecondActivity" android:label="@string/app_name"></activity>    </application></manifest>

今天主要学习的是activity的生命周期

首先明确一点http://developer.android.com/index.html这个是android的官网上面可以找到很多关于androidapi

首先我们要了解activity的七个生命周期函数

Android——关于生命周期的7个函数

1、onCreate()
Acitivity首次创建时被调用。用于设置Acitivity的布局文件,绑定按钮监听器等一些普通静态操作。

注意是首次创建,如果只是因为onStop()导致的不可见,当重新 回到这个界面的时候不会调用onCreat()方法,而是会调用onRestart()方法

2、onStart()
Acitivity对用户可见时被调用,比如当前界面已经黑屏,将会调用onPause() onStop(),然后当屏幕又亮了的时候就会调用onStart方法,onCreat方法和onRestart方法对应使用

3、onResume()
Acitivity获得用户焦点,即用户可操作该Acitivity时被调用。

4、onPause()
应用程序启动了其它Acitivity时被调用。一般用于保存当前Acitivity中的数据。

5、onStop()
Acitivity不可见时被调用。

6、onRestart()
已停止的Acitivity重新启动时被调用。

7、onDestroy()
调用Acitivity的finish()方法或Android系统资源不足时被调用。

他们会在activity在运行的不同阶段进行调用

本例中通过两个Activity04程序来讲解activity的生命周期函数的各自作用

一个是FIrstActivity.java一个是SecondActivity.java

每个函数中都复写了这七个生命周期函数

在右上角有一个按钮显示openperspective这个功能选择DDMS就可以看到这个地方了

这里可以看到System.out.println();输出的内容

LogCat程序输出的日志为了能看到内容我们应该加一个过滤器

在日志框中找到一个小加法号显示addanewlogcatfilte是一个日志的过滤器

在filtername里面写上System.out (其实只是个名字) 还有在byLogTag也写上System.out

所有在System.out里面输出的信息都是可以看到了在这里面


当我们首先进入FirstActivity的时候,调用FirstActivity-----onCreat方法,然后 onStart方法 然后onResume方法,在按下跳转按钮之后首先调用First ----onPause方法保存相关信息,然后Second----onCreat方法然后onStart方法 然后onResume方法,然后First的onStop方法,表示不可见,当我们按下返回键的时候将会出现First---onRestrat方法,当直接按下按钮返回的时候将还会调用onCreat方法。


当屏幕黑下来的时候将会调用onPause()和 onStop(),然后亮了之后选取onRestart onStart onResume方法


当我们调用了finish()方法或者说系统资源不够用的时候android操作系统会选择调用destroy方法



更多相关文章

  1. Android:BroadcastReceiver
  2. Android的菜单栏Menu用法详解(超详细)
  3. 每日一道Android(安卓)面试题,面试途中不败题
  4. Android(安卓)jni的调用过程JNI_OnLoad(),利用Android(安卓)NDK
  5. Android(安卓)Window类
  6. 数据存储之——Android内、外存储分区&常用存储目录详解(Android(
  7. Android进阶知识树——Android系统的启动过程
  8. IOS和Android(安卓)OpenGL游戏引擎的集成AdMob新版教程
  9. Android(安卓)程式开发:(一)详解Activity —— 1.1生命周期

随机推荐

  1. 自定义adapter 及其性能优化
  2. android待机应用和若干常见问题解决
  3. Ubuntu下搭建Android(安卓)NDK开发环境
  4. android
  5. android animation's overview
  6. android中文api (59) ―― TabHost.TabSp
  7. Android(安卓)init 启动过程分析
  8. Android开发者必备的十个工具
  9. 【原创翻译】ArcGis Android(安卓)10.2.4
  10. ImageView的android:maxHeight,android:mi