Activity生命周期(2)—事件回调函数调用顺序

  • 彻底生命周期 onCreate() — onDestroy() :从Activity的生命周期创建到销毁的所有过程
  • 但是生命周期 onStart() — onStop():Activity在界面上从可见到不可见的过程
  • 活动生命周期 onResume — onPause() :Activity在屏幕最上层,并能与用户进行交互

示例程序

1.程序代码java

(经过在生命周期函数中添加“日志点”的方法进行调试)android

package com.jhincheung.activitylifecycle;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
	private static String TAG = "LIFECYCLE";
	
	/*
	 * 彻底声明周期开始时被调用,初始化Activity
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.i(TAG,"(1)onCreate()");
		
		//定义按钮和按钮监听函数,经过用户点击按钮调用finish()函数结束程序
		Button button =(Button)findViewById(R.id.btn_finish);
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View view) {
				finish();
			}
		});
	}
	
	/*
	 * 可视生命周期开始时被调用,对用户界面进行必要的更改
	 */
	@Override
	public void onStart() {
		super.onStart();
		Log.i(TAG, "(2)onStart()");
	};
	
	/*
	 * 在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息
	 */
	@Override
	public void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);
		Log.i(TAG, "(3)onRestoreInstanceState()");
	};
	
	
	/*
	 * 在活动周期开始时被调用,恢复被onPause()中止的用于界面更新的资源
	 */
	@Override
	protected void onResume() {
		super.onResume();
		Log.i(TAG, "(4)onResume()");
	}
	
	/*
	 * 在onPause后被调用,保存界面的临时信息
	 */
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		Log.i(TAG, "(5)onSaveInstanceState()");
	}
	
	/*
	 * 在从新进入可视生命周期前被调用,载入界面所须要的更改信息
	 */
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i(TAG, "(6)onRestart()");
	}
	
	/*
	 * 在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源
	 */
	@Override
	protected void onPause() {
		super.onPause();
		Log.i(TAG, "(7)onPause()");
	}
	
	/*
	 * 在可视化生命周期结束时被调用,用来释放占用的资源
	 */
	@Override
	protected void onStop() {
		super.onStop();
		Log.i(TAG, "(8)onStop()");
	}
	
	/*
	 * 在彻底生命周期结束时被调用,释放资源,包括线程、数据链接等
	 */
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.i(TAG, "(9)onDestory()");
	}
	
}

2.程序界面app

3.调用顺序ide

(1)彻底生命周期函数

启动ActivityLifeCycle — 点击”结束程序“按钮关闭程序spa

调用顺序:onCreate — onStart —onResume — onPause — onStop  — onDestroy线程

(2)可视生命周期调试

启动ActivityLifeCycle — 启动拨号程序 — 返回ActivityLifeCycle日志

调用顺序:code

  • 启动:(1)—(2)—(4)
  • Activity被覆盖:(7)—(5)—(8)
  • 从新显示Activity:(6)—(2)—(4)
相关文章
相关标签/搜索