編輯:關於android開發
一、四個組件類型
Android中有四個重要的組件類型:Activities、Services、Broadcast receivers、Content providers。
Activities
1.多個activity可以組合在一起使用並構成一個組合式應用,但是它們各自仍然是互相獨立的。它們都繼承自基類Activity。
2.一般情況下,當Android應用程序中存在多個Activity時,其中一個Activity會被標記為first並首先展示給用戶;若當前Activity准備要開始下一個時,才會移動到下一個Activity。
3.每個Activity都有一個默認窗體;另外Activity也會使用額外的窗體,例如:彈出式對話框。
4.窗體中的元素是由view類的對象生成的,它們都繼承自基類View。這些可視化元素都維持著一個長方形區域,這塊區域就是該元素用於響應用戶請求(action)的發源地。
5.窗體中的元素是存在於Activity中的窗體之中的,因此程序裡面調用Activity.setContentView()即可。
Services
1.service不需要可視化的用戶界面,它會在後台不定期的運行。每個service都繼承自基類Service。
2.為使service的運行不影響其它組件,它們會產生大量的任務線程。
Broadcast receivers
1.broadcast receiver:它是一個用來接收和響應broadcast的組件,大多數的broadcast就來自於系統當中,例如:更改時區、更改語言、電池電量不足等。另外應用程序也可以創建broadcast,例如:一些數據已經下載到設備上,那麼就會通知其它的應用程序你們可以使用這些數據了。所有的接收器都繼續自基類Broadcastreceiver。
2.broadcast不會直接顯示一個用戶界面,而是啟動一個activity來響應它們所接受到的信息或是使用NotificationManager警示用戶。Notification有很多方式能引起用戶的注意,比如:閃爍背景燈、設備的震動功能、提示音等;最典型的方式就是在狀態欄中放置一個顯眼的小圖標,用戶則可以打開它獲取消息。
Content providers
1.content provider可以為其它應用程序創建它們所需要的有用數據。這些數據可以保存到文件系統、SQLite數據庫或是其它有意義的方式。
2.content provider繼續自基類ContentProvider,它們都實現了一套標准的接口,以供應用程序能夠檢索、保存這些數據。不過在實際開發中,不能直接調用那些方法,需要用類ContentResolver的對象調用它們。
二、組件使用說明
啟動組件:Intents
1.除了Content providers是要和ContentResolver搭配使用之外,其余的三個組件:Activities、Services、Broadcast receivers都會與Intents搭配使用。
2.創建一個Activity是向Context.startActivity()或是 Activity.startActivityForResult()兩個方法傳遞一個Intent對象;前者的不返回任何結果,後者則會返回期望的結果。Activity調用getIntent()方法以獲取Intent對象。
3.創建一個服務是向Context.startService()或Service.onStartCommand()方法傳遞一個Intent對象。
4.創建一個boadcast是向Context.sendBroadcast()、Context.sendOrderBroadcast()、Context.sendStickyBroadcast()的三個方法中任意一個傳遞Intent對象即可。
關閉組件
1.Content provider組件僅僅是響應來自ContentResolver的請求;Broadcast receiver僅僅是響應broadcast消息。所以開發人員不需要顯示地關閉它們。
2.由於Activity和Service需要長期的運行,為避免系統的資源浪費,所以Android為開發人員提供了關閉它們的方法。
3.關閉Activity是調用自身的finish()或finishActivitiy();後者需要一個條件,是以startActivityForResult()方法啟動的。
4.關閉Service是調用自身的stopSelf()或Context.stopService()。
5.其他情況下,當某個組件不再使用,系統也會自動將它們關閉或是Android為了更多的在用組件回收內存也會關閉它們。
Manifest文件
1.Android應用程序運行之前,它要知道存在著哪些組件。Manifest文件就是用來告知Android,你有哪些組件?
2.四個組件類型的標簽分別是:<activity>、<service>、<provider>、<receiver>。
3.上述前三個組件標簽必須在Manifest文件中定義,否則Android不會運行這些組件;而Broadcast receiver組件既可以在Manifest文件中定義也可以動態地在代碼中創建BroadcastReceiver對象或是調用Context.registerReceiver()進行系統注冊。
Intent filters
1.Intent filters定義在Manifest文件中,若其當前的目標組件有名字,Android就會查找到那個組件並且運行它;否則Android會在當前 Intent filters裡面比較Intent對象,選擇最適合的Intent與這個匿名組件配合使用。
2.一個組件可以有多個intent filters,每一個都定義了不同的功能。
3.對於那些創建於代碼中的Broadcast revceiver來說,intent filters也會直接地實例化成IntentFilter對象;而其它的filters是在Manifest文件中創建。
git版本控制工具(二)----本地版本庫的常用操作,git----【正文】 在上一章節中,我們學習了關於Git最基本的用法,包括安裝Git、創建版本庫,以及提交本地代碼
Android Design Support Library——Snackbar,androidsnackbar Snackbar是一個輕量級控件,它可以很方便的提供消
Android中手機錄屏並轉換GIF的兩種方式,android錄屏之前在博文中為了更好的給大家演示APP的實現效果,本人了解學習了幾種給手機錄屏的方法,今天就給大家介紹兩
Android傳感器應用——重力傳感器實現滾動的彈球,android傳感器一、 問題描述 Android中有多達11種傳感器,不同的手機設備支持的傳感器類型也不盡相同