標籤: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的生命週期