Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android生命周期裡你或許不知道的事

Android生命周期裡你或許不知道的事

編輯:關於Android編程

Android生命周期估計連初學者都再熟悉不過的東西了,但這裡我拋出幾個問題,或許大家以前沒有想過或者可能認識的有些錯誤。

一、當A啟動B時,A和B生命周期方法執行的先後順序是怎樣的?當按返回鍵返回時,又是怎樣的?(讀者可以先想想,可能會跟你的答案不一致)

A--->B時,打印結果如下:

\

按返回鍵B--->A,打印結果如下:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20140703/20140703091230101.jpg" alt="\">

結論:先執行當前顯示Activity的onPause方法,接著執行完將要顯示Activity的生命周期方法,最後再執行當前顯示Activity的其它生命周期方法

二、生命周期onPause 彈出的新窗體是指Activity的還是任意的,比如Dialog

上代碼:

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

public class AActivity extends Activity {

	private static final String TMG = "ActivityTask";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.i(TMG, "AActivity onCreate");
		setContentView(R.layout.layout_task);
		Button _buttonStartB = (Button) findViewById(R.id.buttonStartB);
		_buttonStartB.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				AlertDialog.Builder builder = new AlertDialog.Builder(AActivity.this);
				builder.setTitle("Pick a color");
				AlertDialog alert = builder.create();
				alert.show();
			}
		});
	}

	@Override
	protected void onResume() {
		super.onResume();
		Log.i(TMG, "AActivity onResume");
	}

	@Override
	protected void onPause() {
		super.onPause();
		Log.i(TMG, "AActivity onPause");
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i(TMG, "AActivity onRestart");
	}

	@Override
	protected void onStart() {
		super.onStart();
		Log.i(TMG, "AActivity onStart");
	}

	@Override
	protected void onStop() {
		super.onStop();
		Log.i(TMG, "AActivity onStop");
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.i(TMG, "AActivity onDestroy");
	}

}

執行完代碼之後,點擊彈出對話框按鈕我們發現AActivity的生命周期方法沒有打印

結論:onPause彈出的新窗體必須是Activity才行,如果是Dialog,生命周期方法是不執行的。



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved