Activity生命週期的詳解
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2.點擊返回鍵時,會調用以下方法
從調用 onpause() ——>onstop()——>onDestroy().
--------------------------------------------------------------------------------
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2.點擊Home鍵時,會調用以下方法
從調用 onpause() ——>onstop()。
3 在桌面時,長按Home鍵,會返回activity
從調用 onrestart() ——>onstart()——>onresume().
--------------------------------------------------------------------------------
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2.從CircleActivity切換到secondActivity(兩個activity分別有一個“第一個按鈕”,和一個“返回”按鈕),
點擊“第一個按鈕”按鈕時,會調用以下方法
從調用 onpause() ——>onstop()。
點擊“返回”按鈕時,會調用以下方法
從調用 oncreate() ——>onstart()——>onresume().
點擊返回鍵時,會調用以下方法
從調用 onrestart() ——>onstart()——>onresume().
--------------------------------------------------------------------------------
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2. 點擊“mybtn”按鈕,切換至DialogActivity,會調用以下方法
部分覆蓋上一個頁面時,只會調用 onpause()
3.點擊返回鍵,返回 CircleActivity 頁面
只會調用Onresume(),直接返回。
-----------------------------------------------------------------------------
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2.創建一個對話框 ,在首頁上點擊really按鈕時,不會產生任何效果,沒有方法的調用。
-----------------------------------------------------------------------------------------------------------------------------------------------
添加保存數據和恢復數據的倆個方法後,
protected voidonRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG,"onRestoreInstanceState()");
}
protectedvoid onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG,"onSaveInstanceState()");
}
1.運行activity時,會調用以下方法。
從調用 oncreate() ——>onstart()——>onresume().
2.直接點擊HOme鍵
從調用onSaveInstanceState() ——>onpause() ——>onstop()。
3.長按Home鍵,返回CircleActivity
從調用 onrestart() ——>onstart()——>onresume().
實現的代碼:
package cn.class3g.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class CircleActivity extendsActivity {
privatestatic final String TAG="lifecircle";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG,"oncreate");
Button gobtn= (Button)this.findViewById(R.id.gobtn);
Button mybtn= (Button)this.findViewById(R.id.mybtn);
Button reallybtn= (Button)this.findViewById(R.id.reallybtn);
gobtn.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v) {
Intentintent= new Intent(CircleActivity.this,SecondActivity.class);
startActivity(intent);
}
});
mybtn.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= newIntent(CircleActivity.this,DialogActivity.class);
startActivity(intent);
}
});
reallybtn.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View v) {
really();
}
});
}
public void really(){
AlertDialog.Builder builder= newBuilder(CircleActivity.this);
builder.setTitle("提示消息");
builder.setMessage("確認退出?");
builder.setPositiveButton("確定",
newandroid.content.DialogInterface.OnClickListener() {
@Override
publicvoid onClick(DialogInterface dialog, int which) {
//TODO Auto-generated method stub
dialog.dismiss();
CircleActivity.this.finish();
}
});
builder.setNegativeButton("取消",
newandroid.content.DialogInterface.OnClickListener() {
@Override
publicvoid onClick(DialogInterface dialog, int which) {
//TODO Auto-generated method stub
dialog.dismiss();
}
});
builder.create().show();
}
@Override
protectedvoid onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG,"onDestroy");
}
@Override
protectedvoid onPause() {
//TODO Auto-generated method stub
super.onPause();
Log.i(TAG,"onPause");
}
@Override
protectedvoid onRestart() {
//TODO Auto-generated method stub
super.onRestart();
Log.i(TAG,"onRestart");
}
@Override
protectedvoid onResume() {
//TODO Auto-generated method stub
super.onResume();
Log.i(TAG,"onResume");
}
@Override
protectedvoid onStart() {
//TODO Auto-generated method stub
super.onStart();
Log.i(TAG,"onStart");
}
@Override
protectedvoid onStop() {
//TODO Auto-generated method stub
super.onStop();
Log.i(TAG,"onStop");
}
protectedvoid onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG,"onRestoreInstanceState()");
}
protectedvoid onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG,"onSaveInstanceState()");
}
}