Android:生命周期案例

  在学习Android应用生命周期章节中,书本上写的有点笼统,较难理解。为了理解的更深,写了个程序测试一下。

  1、在layout文件夹中建一个dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="This is a dialog Activity."
    />

</LinearLayout>

  2、在layout文件夹中再建一个normal_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="This is a normal Activity."
        />

</LinearLayout>

   3、修改layout文件夹中的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	>

    <Button
        android:id="@+id/start_normal_activity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Start NormalActivity"
        />

    <Button
        android:id="@+id/start_dialog_activity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Start DialogActivity"
        />
</LinearLayout>

  4、编写java文件,建立一个DialogActivity.java

package com.example.acitivitylife;

import android.app.Activity;
import android.os.Bundle;

public class DialogActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dialog_layout);
	}
}

  5、编写java文件,建立一个NormalActivity.java

package com.example.acitivitylife;

import android.app.Activity;
import android.os.Bundle;

public class NormalActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.normal_layout);
	}
}

  6、修改MainActivity.java

package com.example.acitivitylife;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	public static final String TAG = "MainActivity";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.d(TAG, "onCreate");
		setContentView(R.layout.activity_main);
		Button startNormalActivity = (Button)findViewById(R.id.start_normal_activity);
		Button startDialogActivity = (Button)findViewById(R.id.start_dialog_activity);
		startNormalActivity.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this, NormalActivity.class);
				startActivity(intent);
			}
		});

		startDialogActivity.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this, DialogActivity.class);
				startActivity(intent);
			}
		});
	}

	@Override
	protected void onStart() {
		super.onStart();
		Log.d(TAG, "OnStart");
	}

	@Override
	protected void onResume() {
		super.onResume();
		Log.d(TAG, "onResume");
	}

	@Override
	protected void onPause() {
		super.onPause();
		Log.d(TAG, "OnPause");
	}

	@Override
	protected void onStop() {
		super.onStop();
		Log.d(TAG, "onStop");
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.d(TAG, "onDestroy");
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		Log.d(TAG, "onRestart");
	}

}

  以上步骤完成后,安装到手机,观察LogCat打印出来的消息,对生命周期将一目了然。

  自动安装到手机后,LogCat打印出:

  

  点击Start NormalgActivitya按钮后,LogCat打印出:

  按下返回键后,LogCat打印出:

  

  点击Start DialogActivitya按钮后,LogCat打印出:

  

  按下返回键后,LogCat打印出:

  退出程序后,LogCat打印出:

时间: 2024-08-01 18:41:06

Android:生命周期案例的相关文章

Android生命周期里你或许不知道的事

Android生命周期估计连初学者都再熟悉不过的东西了,但这里我抛出几个问题,或许大家以前没有想过或者可能认识的有些错误. 一.当A启动B时,A和B生命周期方法执行的先后顺序是怎样的?当按返回键返回时,又是怎样的?(读者可以先想想,可能会跟你的答案不一致) A--->B时,打印结果如下: 按返回键B--->A,打印结果如下: 结论:先执行当前显示Activity的onPause方法,接着执行完将要显示Activity的生命周期方法,最后再执行当前显示Activity的其它生命周期方法 二.生命

android生命周期总结

管理Activity的生命周期 当用户浏览,离开和返回到你的app,Activity的实例在其生命周期的不同状态下转换.举例来说:当你的应用程序第一次启动时,它来到系统中突出的位置并且接收用户的焦点.(it comes to the foreground of the system and receives user focus.)在此过程中,当你装载用户界面和其他组件时,Android系统在你的Activity中调用了一系列的生命周期函数.如果用户做了一个动作启动了其他的activity或者切

Android 生命周期

与windows平台不同,Android应用程序不能控制自己的生命周期,应用程序组件必须监听应用程序的状态的变化并作出适当反应,特别要注意为随时被终止做好准备 默认情况下,每个Android应用程序都是通过他们自己的进程运行,每个进程都运行在独立的Dalvik实例中,每个应用程序的内存和进程管理都是由运行时进行专门处理的.通过使用android:process属性可以使同一个应用程序组件运行在不同的进程中,或者让多个应用程序共享一个进程 回收资源时,进程被终止的顺序是由它们的应用程序优先级决定的

Android生命周期(三)

一个Android应用程序的生命周期用以下图解释再清楚不过了. 创建一个demo,代码如下: public class MainActivity extends Activity { private static final String TAG = "Android_life"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.

[转]Android生命周期

转自:http://www.cnblogs.com/shaweng/archive/2012/07/03/2575302.html 三个循环 提供两个关于Activity的生命周期模型图示帮助理解:                                           图1 图2 从图2所示的Activity生命周期不难看出,在这个图中包含了两层循环, 第一层循环是onPause -> onResume -> onPause, 第二层循环是onStop -> onResta

Android生命周期与Intent笔记

生命周期: 从出生到死亡 Activity生命周期的7个方法和3个循环 onCreate() 创建时调用onRestart() 不可见到可见时调用onStart() 用户可见时调用onResume() 用户可交互时调用onPause() 用户不可交互时调用onStop() 用户不可见时调用onDestroy() 销毁时调用 启动与退出的循环Activity启动 onCreate() -- onStart() -- onResume()Activity退出 onPause() -- onStop(

Android生命周期 &amp; Activity生命周期

了解Android系统的进程优先级的变化方式 1.Android系统一般是运行在资源受限的硬件平台上,因此资源管理对Android系统很重要 2.为了保证高优先级程序正常运行,可以在无任何警告的情况下终止低优先级程序,并回收其使用的系统资源,因此,Android程序并不能完全控制自身的生命周期,而是由ANdroid系统进行调度和控制的 3.Android系统尽可能地不主动去终止应用程序,即使生命周期结束的程序也会保存在内存中,以便再次快速启动 4.但在内存紧张时,系统会根据进程的优先级清除进程,

Android生命周期详细说明

提供两个关于Activity的生命周期模型图示帮助理解:                                           图1 图2 从图2所示的Activity生命周期不难看出,在这个图中包含了两层循环, 第一层循环是onPause -> onResume -> onPause, 第二层循环是onStop -> onRestart -> onStart -> onResume -> onPause -> onStop.我们可以将这两层循环看成

4、android生命周期的介绍

1.什么事Activity 就是布满整个窗口或者悬浮于其他窗口之上的交互界面,一个应用由多个Activity构成,都会在Mainifest.xml中指定一个主的Activity. 当程序第一次运行就会看到主activity,这个activity通过启动其他activity进行相关操作 当启动其他activity时,当前这个activity将会停止,新的activity压入栈中,同事获取用户焦点 因为栈是先进后出,用户back时,当前页面销毁,之前页面显示 2.Activity的生命周期 7个方法