Android回爐系列之四大組件之首Activity,android回爐

來源:互聯網
上載者:User

Android回爐系列之四大組件之首Activity,android回爐

        有段時間沒有認認真真研習過android了,android畢竟是我進這個軟體開發圈子接觸的第一門技術,android已經成了口頭禪之類的東西了.當初學習android的時候大都是草草了事浮於表面,很多知識點沒有深入學習,導致現在基礎不是很牢靠.在遇到某些高度技術問題的時候思路容易斷,所以我決定用部落格來記錄回爐學習的過程.網上部落格簡直多如牛毛,而我想寫一些屬於自己的東西,就是話比較多比較囉嗦但是很容易理解的東西,不會出現很多讓新手看不懂的代碼,出現的代碼每行我都會注釋是什麼意思.我一直把自己當新手.劍聖有句台詞就說"真正的大師永遠懷著一顆學徒的心".哈哈哈,雖然我還不是大師.

       首當其衝的就是Activitty,android四大組件之首.幾乎可以說是最重要的一個組件.今天就從Activity開始回爐吧.

一.什麼是Activity?

      Android的四大組件分別是Activty/Service/Broadcast Receiver/Content Provider.  Activity翻譯過來就是活動的意思,在android裡面可以理解成使用者能看到的一個介面並且和使用者能產生互動.可以說,一個app裡面你所有能看到的東西都是Activity.我們可以在一個Activity上放很多東西,比如列表,圖片,按鈕等等.然後通過別的組件使這些"死"的東西變成"活"的.如何把他們變成活的,都會在後續的部落格中陸續更新.

 1.1 Activity的生命週期

     要學習Activity就不得不提起他的生命週期,至關重要!生命週期中每一段都在Activity的一生中扮演著獨一無二不可替代的角色,就像我們人的一生中也有很多至關重要的時期一樣.

     要瞭解生命週期就必須對Activity的運行狀態有深刻的瞭解,一個Activity大致經過四個運行狀態.

    a.運行狀態:Activity處於前台,即你可以看的見的,並且可以獲得焦點.(獲得焦點就是可以操作可以互動的意思)

    b.暫停狀態:Activity仍然處於前台,仍然可見,但是失去焦點.舉一個很常見的情境你就明白了.比如你正在玩,此時來了一條簡訊,這條簡訊的對話方塊並沒有佔滿整個螢幕而是一小塊,此時你既能操作回複簡訊,又能看到部分的介面但是無法操作介面.這時就稱當前的Activity處於暫停狀態.

    c.停止狀態:Activity不可見,並且失去焦點.比如你從一個人的對話方塊頁面退出了去看朋友圈了,此時就說那個對話方塊頁面Activity處於停止狀態.你看不到他了.

    d.銷毀狀態:Activty徹底結束,好比一個人的一生就結束了.只不過人生無法重來,Activity卻可以Restart~

   當你瞭解了一個活動的運行狀態後就應該去瞭解下他具體的生命週期是怎麼運作的了.每一個運行狀態背後都藏著不為人知的生命週期.哈哈~

   Activity一共有七個生命週期:onCreat()  onStrat()  onResume()   onPause()  onStop()  onDestory()  onRestart().大家看英文就應該能大致知道他們各自的意思.細心的話可以發現他們是首尾對應的.

//onCreat是生命週期的第一個方法,意思就是建立!也就是說當一個Activity建立的時候是調用這個方法.在這方法裡可以做一些初始化操作,比如載入布局,初始化方法等等

   @Override protected void onCreate(Bundle savedInstanceState){

         super.onCreate(savedInstanceState);

         setContentView(R.layout.activity_main);}

 

//onStart是當Activty建立好之後顯示到螢幕上時調用的方法,也就是說此時你可以看到Activity但還不能互動

   @Override protected void onStart() {

         super.onStart(); }

 

//onResume被回調的時候就是可以和Activity產生互動了 比如你點擊一些按鈕,圖片什麼的

    @Override protected void onResume() {

         super.onResume(); }

 

 //onPause方法即暫停 這個方法就是在上面提到的暫停狀態的時候調用,比如你正在發簡訊突然來了個電話此時就需要調用這個方法來儲存你正在發簡訊的頁面,可以在裡面寫一些方法用來儲存你正在輸入的內容,不然等你電話掛了 你打的簡訊內容全都沒了,嗯這種使用者體驗誰都不想要有吧? 這就是這個方法的作用!

    @Override protected void onPause() {

        super.onPause(); }


//onStop方法即是停止 緊跟在onPause後面調用 一個活動要想停止,首先得暫停  比如你按home鍵並不按返回鍵,此時只是將Activity最小化並沒有銷毀

    @Override protected void onStop() {

       super.onStop(); }

 

 //onDestory即銷毀 緊跟在onStop後面 同理一個活動要銷毀前必須先停止

    @Override protected void onDestroy() {

       super.onDestroy(); }

 

//onRestart方法即重啟  當一個Activity被銷毀後系統重新開啟這個activity是調用這個方法

@Override protected void onRestart() {

      super.onRestart(); }

      如果說這樣的話你依然對生命週期的過程不完全理解的話,我只能說那很正常,因為我寫的不太好!建議大家用log的方法將日誌列印出來,在兩個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.