天天看點

安卓市場-架構搭建

版權聲明:您好,轉載請留下本人部落格的位址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/46919729

在我們學習完android的基礎知識之後,肯定很想通過自己所學習的基礎知識來建構一個自己的安卓項目,但是又不知道從何下手,我們這個專題就是為了學習完安卓的基礎知識之後,來練手用的。

我們這款項目是通過編寫一個我們經常用到的安卓市場來對知識的一個綜合應用,該應用具體有以下功能:

  • 1:有這麼幾個tab,首頁,分類,推薦和主題
  • 2:首頁分為上中下三個部分,分别為搜尋,推薦欄和app清單
  • 3:分類使用格子效果展示類别,點選進入app清單展示
  • 4:推薦是使用别人實作的一個推薦效果
  • 5:主題分别顯示圖檔和文字介紹,點選進入之後顯示app清單
  • 6:側滑欄包含一些選項,包括設定,個人首頁,檢查更新以及下載下傳管理等
  • 7:實作多線程下載下傳,可以進行暫停,取消等操作
  • 8:其他功能

好了,廢話少說,我們現在所要做的第一件事情就是先回顧一下android的基礎知識。在我們以後的部落格中,都會回顧一下與我們這篇程序相關的基礎知識。

首先,我們知道安卓的四大元件分别為:

  • 1:activity(活動)
  • 2:service(服務)
  • 3:Broadcast Receiver(廣播)
  • 4:Content Provider(内容提供者)

在這一篇部落格中我們主要回憶的是android的第一個元件activity和android的Application。

我們知道,在我們進行android開發的時候,每一個activity都對應一個相應的界面,那麼每一個activity都對應自己的生命周期,首先我們就來讨論一下activity的生命周期,所謂聲明周期,就是activity從建立到銷毀的過程。

我們看一下android的api中關于activity的聲明周期的函數有以下幾個:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_main);

        Log.e("activity--->","create");

        super.onCreate(savedInstanceState);


    }

    @Override
    protected void onStart() {
        Log.e("activity--->","start");
        super.onStart();
    }

    @Override
    protected void onRestart() {
        Log.e("activity--->","restart");
        super.onRestart();
    }

    @Override
    protected void onResume() {
        Log.e("activity--->","resume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        Log.e("activity--->","pause");
        super.onPause();
    }

    @Override
    protected void onStop() {
        Log.e("activity--->","stop");
        super.onStop();
    }

    @Override
    protected void onDestroy() {
        Log.e("activity--->","destroy");
        super.onDestroy();
    }
           

1:首先我們看一下,當一個activity啟動的時候,函數的調用順序:

即onCreate()->onStart()->onResume()

2:當第一個activity啟動另外一個activity的時候,兩個activity分别調用什麼函數呢?

我們來看一下:

即activity1 onPause()->activity2 onCreate() -> activity2 onStart() -> activity2 onResume() -> activity1 onStop()

3:當從第二個activity傳回到第一個activity的時候,函數是如何調用的,我們來看一下:

即 activity2 onPause() -> activity1 onRestart() -> activity1 onStart() -> activity1 onResume() -> activity2 onStop() -> activity2 onDestroy()

4:當activity銷毀的時候,會有哪幾種情況呢?

第一種,按下傳回鍵銷毀activity:

activity onPause() -> activity onStop() -> activity onDestroy()

第二種:process kill的時候,也就是殺死程序的時候

activity onPause() -> Process kill

或者為

activity onPause() -> activity onStop() -> Process kill

下面我們來具體說一下這幾個函數:

在我們進行項目開發的時候,這些函數我們基本上都是從父類中繼承而來。

1:onCreate():當activity第一次啟動的時候,該方法觸發,在該函數中基本上完成activity的初始化工作。該函數有一個參數,用來儲存在函數OnSaveInstance()的時候,儲存的狀态。

2:onStart():該函數表示開始該activity,即将該activity展示給使用者

3:onResume():當一個activity與使用者發生互動的時候,該方法被觸發

4:onPause():一個activity從前台運作轉到背景運作的時候,該方法被觸發

5:onStop():當一個activity不需要展示給使用者的時候,觸發該方法。但是有的時候,該函數不會被觸發而activity就已經被銷毀了,我們剛剛看到的,三種activity被銷毀的方式,是以,如果想要儲存activity的狀态,可以在onPause()函數中設定。

6:onRestart():當停止狀态的活動再次展現給使用者的時候,該函數被調用

7:onDestroy():當activity被銷毀的時候被觸發,但是有的時候不會被觸發而直接銷毀。

還有就是,所有的activity都是在activity棧中被管理的,這裡不再多說。

下面我們來說一說android程式中的Application。

我們會誤以為在android程式運作的時候,會直接運作第一個activity,其實這是不對的,其實一個程式的運作,首先會運作application。其實一個android程式的運作首先運作的是Application的onCreate()函數,而不是第一個Activity的onCreate()函數,在一個android程式中可以沒有activity,但是必須要有Application。

在Application中,經常會定義一些全局的變量供其他activity使用。有興趣的同學可以了解一下Application的聲明周期。

好了,在這一篇中,我們先回顧了一些一會我們将會要用到的基礎知識,下面一篇部落格将要正式開始我們的android市場開發之路。

下一篇: 報數遊戲

繼續閱讀