Android Activity的生命週期

來源:互聯網
上載者:User

標籤:des   android   style   blog   http   io   os   ar   使用   

學習Android不學習生命週期估計以後也不好混,原來學習ASP.,NET的時候發現有生命週期挺蛋疼的,不過還好Android Activity的生命週期比ASP.NET應用程式生命週期相對來說好理解一點,參考了Google的API,還有中文的部落格的,加上自己一點見解,初學Android,高手可以忽略我~

首先看一張很經典的圖片:

 

 

Activity繼承了ApplicationContext,轉到定義,可以重寫一下方法:

 * public class Activity extends ApplicationContext { *     protected void onCreate(Bundle savedInstanceState); * *     protected void onStart(); *      *     protected void onRestart(); * *     protected void onResume(); * *     protected void onPause(); * *     protected void onStop(); * *     protected void onDestroy(); * }

 建立了一個Lifecycle項目,MainActivity中重寫以上方法:

public class MainActivity extends Activity {    private static final String TAG = "com.example.lifecycle";@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.i(TAG, "生命週期Create");    }        @Override    protected void onStart() {    // TODO Auto-generated method stub    super.onStart();    Log.i(TAG, "生命週期Start");    }    @Override    protected void onResume() {    // TODO Auto-generated method stub    super.onResume();    Log.i(TAG, "生命週期Resume");    }    @Override    protected void onPause() {    // TODO Auto-generated method stub    super.onPause();    Log.i(TAG,"生命週期Pause");    }    @Override    protected void onStop() {    // TODO Auto-generated method stub    super.onStop();    Log.i(TAG,"生命週期Stop");    }    @Override    protected void onDestroy() {    // TODO Auto-generated method stub    super.onDestroy();    Log.i(TAG,"生命週期Destroy");    }    @Override    protected void onRestart() {    // TODO Auto-generated method stub    super.onRestart();    Log.i(TAG,"生命週期Restart");    }    public void test(View view){    Intent intent=new Intent(this,UserActivity.class);    startActivity(intent);    }}

運行如所示:

開啟執行了onCreate()->onStart()->onResume三個方法:

 

 

如果這個時候使用一下Back鍵,調用順序onPause()->onStop()->onDestory():

 

Home鍵:

如果在使用一個Activity的時候,這個時候可能突然來了一個電話,Activity並沒有銷毀,只是暫停了:

如果重新按一下Home鍵回去之後就看了執行了onRestart()->onStart()->onResume():

 

Activity中加了一個點擊事件,先設定了一下UserAcitivity: 

      android:theme="@android:style/Theme.Dialog"

點擊之後的效果:

這個時候看Log,UserActivity出現在Main的前面,但是Main還是可見的,所以這個時候只是執行了onPause方法,而沒有執行onStop方法,onResume是一個恢複開始的動作,這時候使用者介面可以點擊,可以輸入,進行操作,跟onPause是相對應的~

初學Android,如果不當,請多多指正~

Android Activity的生命週期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.