偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android組件相關概念總結

移動開發(fā) Android
Android組件可以支持相應的特性,那么今天我們將會通過對Activities;Services;Broadcast receivers;Content providers這四個組件進行詳細的介紹。

Android 手機操作系統(tǒng)是一款開源的系統(tǒng)。對編程有所了解的朋友們可以通過各種編寫方式來使這款系統(tǒng)應用于手機中來滿足各種需求。下面我們將會對Android組件的一些概念進行一個總結,以方便大家的學習。#t#

Android的一個核心特性就是,一個應用程序能利用另外應用程序的元素(假如這些應用程序允許這樣做)。舉個例子,如果你的程序需要展示一個可以滾動的圖片列表,正好有另外一個程序已經有這樣一個合適的滾動條并且也允許其他程序使用,那么你就可以使用這個滾動條來完成你的工作,而不是開發(fā)你自己的。你的應用不需要內含其他應用的代碼或者連接到他。相反,它只是簡單的啟動了需要的部分。

為了讓這個特性能夠工作,系統(tǒng)必須能夠實現運行一個部分組件被需要的應用,并為那個部分實例化一個Java對象。因此,與大多數系統(tǒng)上的應用不一樣,Android應用沒有為應用中的任何部分提供一個單一的入口(比如說,沒有main()函數)。相反的,他們用系統(tǒng)能實例和運行的本質組件。下面是4種組件:

Android組件之Activities

一個活動為一個具有焦點、用戶可以操作的行為展示了一個可視化的用戶接口。舉例,一個活動可以展示一個用戶可以選擇的菜單選項列表,或者展示有字幕的照片。一個文字短信應用可能有一個用來展示可以選擇發(fā)送短信聯(lián)系人列表的活動,一個用來給這個選擇的聯(lián)系人寫短信的活動,其他用來查看以前的短信和改變設置的一些活動。雖然他們一起工作,構成了一個聯(lián)系緊密的用戶接口,每一個活動相對于其他活動卻是獨立的。每一個活動都是繼承于基類Activity。

一個應用可以只有一個活動,或者就像上面的文字短信應用一樣,可以有幾個。這些活動是什么,有多少,當然,取決于應用程序和他的設計。典型的,這些活動中的一個Activity被標記為程序啟動后第一個呈現在用戶眼前。從一個活動轉到另外一個活動只是在當前的活動啟動下一個。

每一個活動都被給與一個缺省的窗口用來繪制。典型的,這個窗口填充了整個屏幕,但是他可以比這個窗口小,漂浮在其他窗口之上。一個活動也可利用額外的窗口。舉例,一個彈出的對話框等待用戶的反應,出現在這個活動的中間,或者當用戶在屏幕上選擇特別的選擇時的一個位用戶展示重要信息的窗口。

這個視覺上的窗口的內容由一套視圖提供,繼承于基類View的實例。每一個視圖控制一個在窗口內的特殊的矩形空間。父類視圖包含并安排了子類的布局。在這套視圖體系底部的視圖在他們所控制的矩形空間中繪制,并對用戶直接對這個空間的行為作出反應。因此,視圖就是用戶行為發(fā)生交互的地方。舉例,一個視圖可能展示了一個很小的圖像,并在用戶觸摸這個圖片時創(chuàng)建了一個動作。Android有大量的已經完成,你可以使用的視圖,包括按鈕,文字框,滾動條,菜單項,復選框…。

一套視圖通過Activity.setContentView()填充到Activity所在窗體中。這個內容視圖使這套體系的根視圖。

Android組件之Services

服務不需要可視化的用戶界面,相反在一段不確定的時間段里運行在后臺。舉例,當用戶在處理其他問題時,服務可以播放背景音樂,或者他可以從網上獲取數據,計算,提高,提供給活動所需要的結果。每個服務繼承于服務基類。

一個基本的例子就是媒體播放器播放列表中的歌曲。播放應用程序可能會有一個或多個活動,允許用戶選擇歌曲并播放它們。但是,音樂回放不會被一個活動處理,因為用戶期望音樂在他們離開這個播放程序界面后仍能播放。為了滿足這個要求,這個播放活動應該開啟一個在后臺運行的服務。系統(tǒng)就能繼續(xù)播放音樂,即使用戶選擇播放音樂后離開了這個界面。

可以實現連接到(綁定到)一個正在運行的服務(也可以開啟一個當前沒有運行的服務)。連接之后,你可以通過系統(tǒng)給出的一個接口與這個服務進行通信。對于這個音樂服務,這個借口可以允許用戶去暫停,倒退,停止,重放和回放。

就像活動和其他的組件,服務運行在應用程序進程中的主線程中。因此,他們不會阻塞到其他組件或者用戶界面,服務通常會生成其他線程用來做那些耗時間的任務(就像音樂播放一樣)。

Android組件之Broadcast receivers

廣播接收器只能接收廣播,對廣播的通知做出反應。很多廣播都產生于系統(tǒng)代碼--舉例,時區(qū)改變的通知,電池電量不足,照了一張相片,或者用戶改變了語言偏好。應用也可以發(fā)出廣播--舉例,讓其他應用知道已從網上下載了一些數據,并且它們可以使用這些數據。

一個應用可以有很多廣播接收器來對它認為重要的通知做出反應。所有的接收器繼承于BroadcastReceiver基類。

廣播接收器不展示一個用戶界面。但是,它們可以為他們接收到得信息啟動一個活動,或者它們可以使用NotificationManager來通知用戶。通知可以以不同形式得到用戶的注意--閃爍背景燈,震動手機,發(fā)出聲音,等等。它們通常在狀態(tài)欄上放置一個暫時的圖標,用戶可以通過打開這個圖標獲取信息。

Android組件之Content providers

內容提供者提供了一套特殊的可供其他應用使用的數據。這些數據可以存儲在文件系統(tǒng)中,SQLite數據庫中,或者其他有意義的形式。內容提供者繼承于ContentProvider基類,實現了一套標準的允許其他用戶檢索,儲存數據的方法。但是,應用程序并不能直接使用這些方法。他們必須使用ContentProvider的實例,調用它的方法。ContentResolver可以與任何內容提供者交流,他們之間的合作可以管理進程間的通信。

不管什么時候有一個需要被一個特殊的Android組件處理的請求,Android確保這個應用組件的進程在運行中,如果有需要就啟動它,確保組件的合適的實例是可用的,如有需要就實例化它。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-25 11:23:43

WPF命令模型

2010-01-26 18:00:07

Android屏幕元素

2010-01-14 17:27:17

VB.NET坐標系統(tǒng)

2010-01-07 14:10:41

VB.NET數據類型

2010-01-28 16:59:55

Android SMS

2010-01-28 16:45:44

Android單線程模

2010-01-27 16:56:42

Android內核

2009-12-23 17:01:09

WPF Command

2010-01-25 16:58:53

Android組件交互

2009-08-27 10:14:04

LINQ基礎概念

2010-04-20 15:13:08

負載均衡

2009-12-15 15:55:43

Ruby模塊

2009-03-24 08:27:02

AndroidGoogle移動os

2012-09-11 14:39:03

Moosefs

2009-12-21 18:19:19

WCF地址類型

2009-08-13 18:02:50

C#基礎概念

2009-12-17 11:27:31

Ruby時間方法

2009-12-23 15:27:34

WPF圖形系統(tǒng)

2009-12-29 17:25:36

Silverlight

2009-12-28 15:18:29

WPF控件模型
點贊
收藏

51CTO技術棧公眾號