安卓第五天————activity生命週期詳解

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()");

         }

 

   

   

   

   

}

發佈了68 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章