Android 學習筆記(九):Activity的生命週期分析和常用控件的使用

一、分析Activity的生命週期變化

  1. 使用右滑手勢(返回鍵)退出應用時,先後進入onPause(),onStop(),onDestroy()三個狀態,應用被摧毀。然後進入應用時先後進入onCreate(),onStart(),onResume()三個狀態。應用重新進入運行狀態。
  2. 在記錄的時候屏幕熄滅,先後進入onPause(),onStop(),Activity進入後臺停止運行重新點亮屏後,先後進入onRestart(),onStart(),onResume()狀態,Activity重新開始運行。
  3. home鍵退出應用時,應用先後進入onPause(),onStop()狀態,應用進入後臺停止運行重新進入應用,先後進入onRestart(),onStart(),onResume()狀態,應用重新開始運行,與第二條記錄的狀態一致。
  4. home鍵退出後,應用先後進入onPause(),onStop()狀態,應用進入後臺停止運行,進入設置切換字體後進入應用,分別進入onDestroy(),onCreate(),onStart(),onResume()狀態,應用繼續運行。
  5. 手機進行旋轉屏幕時,會先進入onPause(),onStop(),onDestroy(),然後進onCreate(),onStart(), onResume()重新開始運行。
總結:通過這次簡單的測試,我更加深刻的瞭解了Activity的生命週期變化,前三種情況都在自己的預料之中,第四種進入destroy狀態查了一下資料知道了原因。第四種:修改字體後,應用切換到前臺時,系統會發送一個通知給應用,應用會通過異常的方式走onDestroy()…這幾個狀態來更新配置。第五種:這個動作的目的是擔心Activity的佈局和資源不適合橫豎屏切換,重新開啓應用使得程序能夠自己做一個適配。

二、AndroidManifest配置theme改變UI效果

  • 通過修改<application標籤中的android:theme屬性爲所有的Activity設置屬性。
  • 通過修改<activity標籤中的android:theme屬性爲當前的Activity設置屬性。

測試過程中出現異常:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme

  • 原因:Activity繼承自AppCompactActivity,所以只能使用Theme.AppCompat下的主題
    解決方法:
    1. MainActivity改爲繼承Activity,但是這樣容易出現一些兼容性的問題。
    2. 使用Theme.AppCompat下的主題,或者自定義主題,然後繼承Theme.AppCompat下的主題。

三、界面包括Button,EditText,TextView

四、輸入文字,顯示在TextView上

學會了給EditText添加簡單的監聽器,從而進行各種操作

五、點擊Button彈出對話框

通過AlertDialog進行簡單彈框的繪製,彈框類型有很多。

六、Button跳轉到其他Activity

//直接指定要跳轉的Activity,顯式跳轉
Intent intent = new Intent(MainActivity.this, NextActivity.class);
//給intent指定Action,然後讓系統自己去選擇相應的Activity
Intent intent = new Intent("Action");
//傳入數據,鍵值對形式
intent.putxxx(a,b);
//執行跳轉
startActivity(intent);

七、總結

1. 更加深刻的理解了Activity的生命週期中的各個狀態,並知道了一些情形下Activity生命週期的變化。
2. 學會了怎麼修改Activity的主題和簡單的自定義主題,並解決了相應的bug。
3. 鞏固了EditText的用法。
4. 學會了通過AlertDialog進行彈框的製作,彈框有很多種,還要利用其它時間多做練習。
5. 學會了使用Intent攜帶數據進行顯式跳轉和隱式跳轉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章