freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的手機電話薄系統(tǒng)設(shè)計課程設(shè)計-文庫吧

2025-06-13 03:56 本頁面


【正文】 用這些分發(fā)的足見。[4] 應用程序?qū)覣ndroid本身會附帶一些核心的應用程序,包括客戶端、短信程序、日歷、地圖、瀏覽器、通訊錄等等,目前所有的應用程序都是由java語言開發(fā)的。圖21 Android體系結(jié)構(gòu) Android開發(fā)組件Android開發(fā)四大組件分別是:活動(Activity): 用于表現(xiàn)功能;服務(Service): 后臺運行服務,不提供界面呈現(xiàn);廣播接收器(BroadcastReceiver):用于接收廣播;內(nèi)容提供商(Content Provider): 支持在多個應用中存儲和讀取數(shù)據(jù),相當于數(shù)據(jù)庫。 Activity組件Android 中,Activity 是所有程序的根本,所有程序的流程都運行在Activity 之中,Activity可以算是開發(fā)者遇到的最頻繁,也是Android 當中最基本的模塊之一。一般一個Android 應用是由多個Activity 組成的,這多個Activity 之間可以進行相互跳轉(zhuǎn),每個Activity都是一個單獨的類,它擴展實現(xiàn)了Activity基礎(chǔ)類。這個類顯示為一個有Views組成的用戶界面,并響應事件。大多數(shù)程序有多個Activity。某些情況下,一個Activity可能會給前一個Activity返回值。打開一個新界面后,前一個界面被暫停,并放入歷史棧中。使用者可以回溯前面已經(jīng)打開的存放在歷史棧中的界面,也可以從歷史棧中刪除沒有價值的界面。[1] Activity的生命周期如圖21所示,Activity的5中狀態(tài)之間的如何切換與運作圖22 Activity的生命周期一個Activity的啟動順序:onCreate()onStart()onResume()當另一個Activity啟動時:第一個Activity onPause()第二個ActivityonCreate()onStart()onResume()第一個ActivityonStop()當返回到第一個Activity時:第二個Activity onPause() 第一個ActivityonRestart()onStart()onResume()第二個ActivityonStop()onDestroy()一個Activity的銷毀順序:情況一:onPause()Process Killed情況二:onPause()onStop()Process Killed情況三:onPause()onStop()onDestroy()每一個活動Activity都處于某一個狀態(tài),對于開發(fā)者來說,是無法控制其應用程序處于某一個狀態(tài)的,這些均由系統(tǒng)來完成。但是當一個活動的狀態(tài)發(fā)生改變的時候,開發(fā)者可以通過調(diào)用 onXX() 的方法獲取到相關(guān)的通知信息。在實現(xiàn) Activity 類的時候,通過覆蓋override這些方法即可在你需要處理的時候來調(diào)用。onCreate : 當活動第一次啟動的時候,觸發(fā)該方法,可以在此時完成活動的初始化工作。 onCreate 方法有一個參數(shù),該參數(shù)可以為空null,也可以是之前調(diào)用 onSaveInstanceState ()方法保存的狀態(tài)信息。onStart: 該方法的觸發(fā)表示所屬活動將被展現(xiàn)給用戶。onResume:當一個活動和用戶發(fā)生交互的時候,觸發(fā)該方法。 onPause: 當一個正在前臺運行的活動因為其他的活動需要前臺運行而轉(zhuǎn)入后臺運行的時候,觸發(fā)該方法。這時候需要將活動的狀態(tài)持久化,比如正在編輯的數(shù)據(jù)庫記錄等。onStop: 當一個活動不再需要展示給用戶的時候,觸發(fā)該方法。如果內(nèi)存緊張,系統(tǒng)會直接結(jié)束這個活動,而不會觸發(fā) onStop 方法。 所以保存狀態(tài)信息是應該在onPause時做,而不是onStop時做?;顒尤绻麤]有在前臺運行,都將被停止或者Linux管理進程為了給新的活動預留足夠的存儲空間而隨時結(jié)束這些活動。在一些情況下,onPause方法或許是活動觸發(fā)的最后的方法,因此開發(fā)者需要在這個時候保存需要保存的信息。onRestart: 當處于停止狀態(tài)的活動需要再次展現(xiàn)給用戶的時候,觸發(fā)該方法。onDestroy:當活動銷毀的時候,觸發(fā)該方法。和 onStop 方法一樣,如果內(nèi)存緊張,系統(tǒng)會直接結(jié)束這個活動而不會觸發(fā)該方法。onSaveInstanceState :系統(tǒng)調(diào)用該方法,允許活動保存之前的狀態(tài),比如說在一串字符串中的光標所處的位置等。[2] Activity棧每個Activity的狀態(tài)是由它在Activity棧(是一個后進先出LIFO,包含所有正在運行Activity的隊列)中的位置決定的。當一個新的Activity啟動時,當前的活動的Activity將會移到Activity棧的頂部。 如果用戶使用后退按鈕返回的話,或者前臺的Activity結(jié)束,活動的Activity就會被移出棧消亡,而在棧上的上一個活動的Activity將會移上來并變?yōu)榛顒訝顟B(tài)。如圖23所示,Activity在棧中的活動順序:圖23 Activity棧每個Activity都有一個默認窗體;另外Activity也會使用額外的窗體,例如:彈出式對話框,窗體中的元素是由view類的對象生成的,它們都繼承自基類View。 Service 組件Service 是android 系統(tǒng)中的一種組件,它跟Activity 的級別差不多,但是它不能自己運行,只能后臺運行,并且可以和其他組件進行交互。Service 是沒有界面的長生命周期的代碼。Service 是一種程序,它可以運行很長時間,但是它卻沒有用戶界面。開啟service有兩種方式: (1) ():Service會經(jīng)歷onCreate onStart(如果Service還沒有運行,則android先調(diào)用onCreate()然后調(diào)用onStart();如果Service已經(jīng)運行,則只調(diào)用onStart(),所以一個Service的onStart方法可能會重復調(diào)用多次 );stopService的時候直接onDestroy,如果是調(diào)用者自己直接退出而沒有調(diào)用stopService的話,Service會一直在后臺運行。該Service的調(diào)用者再啟動起來后可以通過stopService關(guān)閉Service。 注意,()不會嵌套(即使會有相應的onStart()方法被調(diào)用),所以無論同一個服務被啟動了多少次,()或者stopSelf(),他都會被停止。補充說明:傳遞給startService()的Intent對象會傳遞給onStart()方法。調(diào)用順序為:onCreate onStart(可多次調(diào)用) onDestroy。 (2) ():Service會經(jīng)歷onCreate() onBind(),onBind將返回給客戶端一個IBind接口實例,IBind允許客戶端回調(diào)服務的方法,比如得到Service運行的狀態(tài)或其他操作。這個時候把調(diào)用者(Context,例如Activity)會和Service綁定在一起,Context退出了,Srevice就會調(diào)用onUnbind onDestroyed相應退出,所謂綁定在一起就共存亡了 。 BroadcastReceiver 組件在Android 中,Broadcast 是一種廣泛運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發(fā)送出來的Broadcast進行過濾接受并響應的一類組件??梢允褂肂roadcastReceiver 來讓應用對一個外部的事件做出響應。例如,當電話呼入這個外部事件到來的時候,可以利用BroadcastReceiver 進行處理。BroadcastReceiver不能生成UI,也就是說對于用戶來說不是透明的,用戶是看不到的。BroadcastReceiver通過NotificationManager 來通知用戶這些事情發(fā)生了。BroadcastReceiver 中注冊,()進行注冊。只要是注冊了,當事件來臨的時候,即使程序沒有啟動,系統(tǒng)也在需要的時候啟動程序。 () 將它們自己的intent broadcasts廣播給其他應用程序。 Content Provider 組件Content Provider 是Android提供的第三方應用數(shù)據(jù)的訪問方案。在Android中,對數(shù)據(jù)的保護是很嚴密的,除了放在SD卡中的數(shù)據(jù),一個應用所持有的數(shù)據(jù)庫、文件、等等內(nèi)容,都是不允許其他直接訪問的。Andorid當然不會真的把每個應用都做成一座孤島,它為所有應用都準備了一扇窗,這就是Content Provider。應用想對外提供的數(shù)據(jù),可以通過派生ContentProvider類, 封裝成一枚Content Provider,每個Content Provider都用一個uri作為獨立的標識,形如:content://。所有東西看著像REST的樣子,但實際上,它比REST 更為靈活。和REST類似,uri也可以有兩種類型,一種是帶id的,另一種是列表的。另外,Content Provider不和REST一樣只有uri可用,還可以接受Projection,Selection,OrderBy等參數(shù),這樣,就可以像數(shù)據(jù)庫那樣進行投影,選擇和排序。查詢到的結(jié)果,以Cursor的形式進行返回,調(diào)用者可以移動Cursor來訪問各列的數(shù)據(jù)。Content Provider屏蔽了內(nèi)部數(shù)據(jù)的存儲細節(jié),向外提供了上述統(tǒng)一的接口模型,這樣的抽象層次,大大簡化了上層應用的書寫,也對數(shù)據(jù)的整合提供了更方便的途徑。Content Provider內(nèi)部,常用數(shù)據(jù)庫來實現(xiàn),Android提供了強大的Sqlite支持,但很多時候,你也可以封裝文件或其他混合的數(shù)據(jù)。 Android數(shù)據(jù)庫 SQLite數(shù)據(jù)庫SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月. 至今已經(jīng)有10個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。SQLite數(shù)據(jù)類型:一般數(shù)據(jù)采用的固定的靜態(tài)數(shù)據(jù)類型,而SQLite采用的是動態(tài)數(shù)據(jù)類型,會根據(jù)存入值自動判斷。SQLite具有以下五種常用的數(shù)據(jù)類型:NULL:這個值為空值VARCHAR(n):長度不固定且其最大長度為n的字串,n不能超過 4000CHAR(n):長度固定為n的字串,n不能超過 254。INTEGER:值被標識為整數(shù),依據(jù)值的大小可以依次被存儲為1,2,3,4,5,6,7,8.REAL:所有值都是浮動的數(shù)值,被存儲為8字節(jié)的IEEE浮動標記序號.TEXT:值為文本字符串,使用數(shù)據(jù)庫編碼存儲(TUTF8, UTF16BE or UTF16LE).BLOB:值是BLOB數(shù)據(jù)塊,以輸入的數(shù)據(jù)格式進行存儲。如何輸入就如何存儲,不改變格DATA:包含了 年份、月份、日期。TIME: 包含了 小時、分鐘、秒。 SQLite數(shù)據(jù)庫特點1. 輕量級SQLite和C/S模式的數(shù)據(jù)庫軟件不同,它是進程內(nèi)的數(shù)據(jù)庫引擎,因此不存在數(shù)據(jù)庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態(tài)庫,就可以分享它的全部功能。而且動態(tài)庫的尺寸也相當小。2. 獨立性。SQLite數(shù)據(jù)庫的核心引擎不依
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1