Android四大組件的介紹

來源:互聯網
上載者:User

標籤:

一.Android四大組件詳解

Android四大組件分別是:activity,service,content provider,broadcast receiver.

1.activity:

1).一個應用程式一般由多個activity組成.

2).任務棧(task stack)(別名(back stack)後退棧),記錄存放使用者開啟的activity.

3).一個應用程式被開啟之後,系統就會分配一個任務棧,當所有activity都退出時,任務棧清空.

4).任務棧的id是integer型的,是自增長的,它從1開始自增長,自增長值為1.

5).activity之間通過intent進行通訊.

6).app中每一個activity都必須在AndroidManifest.xml檔案中進行聲明,否則系統將不識別不執行該activity.

7).activity的啟動模式,standard(標準啟動模式),single Top(單一頂部),singletask(單一任務棧),singleInstance(單態,單例模式).

(1).standard,預設的標準啟動模式:每次startActivity都是建立一個新的activity,適用於絕大多數情況.

(2).single Top,單一頂部,如果要開啟的activity在任務棧的頂部已經存在,就不會建立新的執行個體,而是調用onNewIntent()方法.

應用情境:瀏覽器書籤.避免棧頂的activity被重複建立.

(3).single task,單一任務棧,activity只會在任務棧裡面存在一個執行個體,如果要啟用的activity在任務棧中已經存在,調用onNewIntent()方法,並且清空當前任務裡面的所有activity,

應用情境:瀏覽器的activity,整個任務棧只有一個activity.

(4).singlelnstance,單態單例模式,整個手機系統中只有一個任務執行個體,不同的應用去開啟一個activity,共用這個activity.

2.Service:

1).service用於使用者在後台完成獨立的操作,service分為兩種,started(啟動),bound(綁定):

a) Started(啟動):當應用程式組件調用startService()方法時服務停止,服務處於started狀態.

b) Bound(綁定): 當用用程式組件調用boundService()方法綁定服務時,服務處於綁定狀態.

2).started Service(啟動服務):是由其他組件調用startService()方法啟動的,導致服務的onStartCommand()方法被調用.當服務處於started的狀態時,其生命週期與啟動它的組件無關,服務需要在完成任務後調用stopSelf()方法停止,或者由其他組件調用stopService()方法停止.

3).使用bindService()方法啟動服務,調用的組件與服務綁定在了一起,該組件一旦退出服務也就終止.

4).開發人員需要在程式設定檔中生命全部的service,使用<service></service>標籤.

5).Service通常位於後台運行,一般不與使用者互動,所以Service組件沒有圖形化使用者介面.Service組件需要繼承Service基類.Service組件通常為其他組件提供後台服務或者監控其他組件的運行狀態.

6).長期在後台啟動並執行組件不要在activity中開啟子線程.應該是建立服務,在服務裡面開啟子線程.

3.Content provider:

1).android 平台提供了Content Provider 使一個程式的指定資料集提供給其他應用程式.其他應用可以通過contentResolver類從該類容中擷取存入的資料.

2).當多個應用程式中共用數組時可使用該組件.例如通訊錄,

3).ContentProvider實現數組共用.ContentProvider用於儲存數組和擷取資料,並對其所有應用程式可見.

4).ContentProvider使用URL來唯一標識其資料集.

4.Broadcast receiver:

1).廣播接收器專註於廣播通知資訊,並作出對應事件處理的組件.

2).應用程式可以擁有任意數量的廣播接收器.以對它感興趣的所有訊息作出響應.所有的接收器均繼承自BroadcastReceiver基類.

3).廣播接收者註冊有兩種方式:

a) 程式動態註冊.

b) AndroidManifest.xml檔案中進行靜態註冊.

4).動態註冊的特點:activity銷毀後,該廣播失效.靜態註冊只要裝置開啟廣播接收器就是開啟的.

Android四大組件的介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.