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

正文內(nèi)容

計算機科學與技術(shù)專業(yè)畢業(yè)論文--android平臺天氣預報widget的設計與實現(xiàn)-wenkub

2022-11-19 01:41:15 本頁面
 

【正文】 以往阻礙移動產(chǎn)業(yè) 創(chuàng)新 的專有權(quán)障礙。 Android 中的 Widget 是 Android 以后加入的一個特性,允許程序顯示一些常用而又重要的信息在用戶的 Home screen(桌面主屏 )上。本文在第二章介紹 Android 開發(fā)環(huán)境的搭建,在第三章介紹 Andoid 開發(fā)基礎(chǔ)知識,第四章介紹天氣預報桌面小程序的設計與實現(xiàn),最后一章介紹在軟件設計過程中遇到的難題和相應解決方案。 2)Eclipse 集成開發(fā)環(huán)境,官方提供的 Android 開發(fā)插件 ADT Plugin 是基于 Eclipse 編寫的,當然用戶可以使用 NetBean、 JBuilder 當作代碼編輯器使用,但目前沒有完整的調(diào)試集成。安裝 Eclipse ADT Plugin,選擇【 Help】 【 Soft Updates】 【 Find and Install?】 選擇“ Available Software”標簽頁,點擊【 Add Site?】按鍵。 為了在 DOS 控制臺中直接使用 SDK 的工具,可以將 SDK 的目錄添加 5 到 Windows 的 path 環(huán)境變量中:在桌面上右擊“我的電腦”,依次點擊【屬性】 【高級】 【環(huán)境變量】。 ( 2) 點擊左邊的 Virtual Devices選項 ,在點擊右邊的 New...按鈕,來新建一個 AVD。 開發(fā)工具 Eclipse介紹 Eclipse 是一種可擴展的開放源代碼 IDE。 Eclipse 允許在同一 IDE 中集成來自不同供應商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標上。任何 Eclipse 插件定義的擴展點都能夠被其它插件使用,反之,任何 Eclipse 插件也可以遵從其它插件定義的擴展點。事實上,由于 Eclipse 并不了解開發(fā)語言,所以無論 Java 語言調(diào)試器、 C/C++調(diào)試器還是匯編調(diào)試器 都是有效的,并可以在相同的框架內(nèi)同時瞄準 不同的進程或節(jié)點。缺點就是較復雜,對初學者 9 來說,理解起來比較困難。 Android 的應用程序目前以 Java 語言編寫。 應用程序框架 普通的開發(fā)者可以使用 Android 核心應用程序的系統(tǒng) API。這些 UI 組件包括列表、文本框、按鈕等。 三. Resource Manager。它能讓程序的將自己的警示信息顯示在狀態(tài)欄上。在 Android 應用中,一個應用一般都是多個頁面組成,而每個頁面的單位就是 Activity。 Android應用程序由以下 4 個模塊構(gòu)造而成: Activity Broadcast Intent Receiver Service Content Provider 當然,也不是每個 Android 應用程序都必須由這 4 部分組成,它可以根據(jù)開發(fā)者需求來進行組合 。每一個活動都被實現(xiàn)為一個獨立的類,并且從活動基類中繼承而來,活動類將會顯示由視圖控件組成的用戶接口,并對事件作出響應。用戶可以返回到歷史棧中的前一個屏幕,當屏幕不再使用時,還可以從歷史棧中刪除。例如,當電話呼入這個外部時間到來的時候,可以利用 BroadcastReceiver 進行處理。只要是注冊了,當時間來臨的時候,即使程序沒有啟動,系統(tǒng)也在需要的時候啟動程序。然而,音樂重放這個功能并沒有對應的 activity,因為使用者會認為在導航到其他屏幕時音樂應該還在播放。當連接到一 個 service 之后,還可用 service 提供的接口與它進行通訊。外界根本看不到,也不用看到這個應用暴露的數(shù)據(jù)在應用當中是如何存儲的,即用數(shù)據(jù)庫存儲還是文件存儲,還是通過網(wǎng)上 15 獲得,這一切都不重要,重要的是外界可以通過這一套標準而統(tǒng)一的接口和程序里面的數(shù)據(jù)打交道。比如,有一個 Activity 希望打開網(wǎng)頁瀏覽器查看某一網(wǎng)頁的內(nèi)容,那么這個Activity 只需要發(fā)出 WEB_SEARCH_ACTION 請求給 Android, Android 會根據(jù) Intent 的請求內(nèi)容,查詢各組件注冊時聲明的 IntentFilter,找到網(wǎng)頁瀏覽器 Activity 來瀏覽網(wǎng)頁。 (2) 要啟動一個新的服務,或者向一個已有的服務傳遞新的指令,調(diào)用 16 ()方法或調(diào)用 ()方法將調(diào)用此方法的上下文對象與 Service 綁定。 Intent 一旦發(fā)出, Android 都會準確找到相匹配的一個或多個 Activity、Service 或 BroadcastReceiver 作為響應。對 17 于沒有明確指出目標組件名稱的 Intent,則稱之為“隱式 Intent”。比如在某應用程序內(nèi),一個 Activity 啟動一個 Service。 是在建立項目時自動生成的,這個文件是只讀模式,不能更改, 文件是定義該項目所有資源的索引文件。使用這部分接口的基本操作主要包括: 向服務器寫數(shù)據(jù) import 。 URLConnection connection = (Proxy_yours)。 // 連接到服務器 ()。 ()。早期的 Android 曾同時 21 包括 Commons HttpClient ( .* ) 和 HttpComponents ( .* ),不 過當前版本 () 中開發(fā)者只能使用后者,也就是說類似以下的一些類: 使用這部分接口的基本操作與 .* 基本類似,主要包括: 處理服務器返回結(jié)果 import 。 import 。 import . HttpClientParams。 (params, 8192)。 是 Commons HttpClient // 中的用法,在 Android 中我們需要使用 Apache 的缺省實現(xiàn) DefaultHttpClient HttpClient Client = new DefaultHttpClient(params)。 HttpEntity entity = ()。 在 Android 應用中,要使用網(wǎng)絡必須先在 注冊使用網(wǎng)絡功能。 通過 openStream()方法獲取 xml 信息,將其作為一個參數(shù)傳給 xml 解析器進行 xml 解析。 SAXParser sp=()。 /*創(chuàng)建我們自己的內(nèi)容處理器 */ ExampleHandler myHander=new ExampleHandler()。 要實現(xiàn) xml內(nèi)容處理器,需要繼承類 ,它提供了 startDocument(),endDocument(),startElement(),endElement(), Charators()等方法。 在 xml 文件中,我們常常在開始 tag 和結(jié)束 tag 之間放入數(shù)據(jù),當 25 SAXParser 解析到中間數(shù)據(jù)時,方法 charactors()就會被調(diào)用。 Tags if ((forecast_information)) { = true。 // 39。Inner39。Inner39。Inner39。 } else if ((current_conditions)) { = false。由于在桌面上所有組件的大小均以單元格為單位,所以這里我們要對桌面部件的最小寬度和最小高度進行描述,然后當桌面部件最終被添加到桌面上時,其大小會被設定為最接近的所占單元格數(shù)大小。 AppWidgetProvider 類擴展 BroadcastReceiver 為一個簡便類來處理App Widget 廣播。但是,如果你已經(jīng)聲明了一個配置活動,這個方法在用戶添加 App Widget 時將不會被調(diào)用,而只在后續(xù)更新時被調(diào)用。 onEnabled(Context) 當一個 App Widget 實例第一次創(chuàng)建時被調(diào)用。你應該在 onDisabled(Context)中做一些清理工作,比如刪除一個臨時的數(shù)據(jù)庫。這個類當中還有一個 UpdateService 子類,繼承自Service。并使用 finish()方法關(guān)閉本頁面。 String temp=(Data)。 然后使用 RemoteViews 更新 App Widget: RemoteViews updateViews = new RemoteViews(getPackageName(), )。 (,+ () )。 ComponentName thisWidget=new ComponentName(this, )。下面講述這一過程 點擊“提交 按鈕時觸 發(fā)以下操作: String city = ((EditText) findViewById()).getText().toString()。 Bundle mBundle = new Bundle()。 finish()。 import 。 剛開始使用 widget 時由于不知道這一點,花費很長時間在檢查代碼上。 RelativeLayout ImageButton 一開始在我的設計中是想把文本輸入框放在桌面的,但是由于RemoteViews 不支持,所以會出現(xiàn)以下錯誤 于是只能修改設計,增加一個 Activity。 在 。 RemoteViews 有提供了一種方法可以實現(xiàn)圖片顯示,但是這種方法要先將圖片導入程序 res 中。 ProgressBar Button FrameLayout 32 我主要重寫了以下方法: startDocument() endDocument() startElement() endElement() charactors() 使用這些方法即可完成對 xml 文件的解析。 WeatherHandle類的實現(xiàn) 這個類的功能是使用 sax 解析 xml 首先導入相關(guān)類: import 。//壓入數(shù)據(jù) (mBundle)。 ()。 (thisWidget, updateViews)。 PendingIntent pIntent=(getApplicationContext() ,0,nIntent,0)。 (, 溫度: + () + 攝氏度 )。 } (new Intent(context,))。 if(()){ Bundle bundle=new Bundle()。 三、 WeatherHandler 類,用于 xml 的解析 下面說明各個類功能的實現(xiàn) 類之間的協(xié)作 當一個 widget 被添加時, CurrentWeather 類會接收 action 為APPWIDGET_UPDATE 的 Intent, CurrentWeather 會啟動一個 Service,由這個服務與網(wǎng)絡連接,獲取天氣預報信息,因為獲得的數(shù)據(jù)形式是 xml 的,所以調(diào)用 WeatherHandle 類進行 xml 解析,根據(jù)解析后的結(jié)果將相關(guān)信息顯示在用戶桌面。 源文件組織 源程序包括三個 java 類: 一、 CurrentWeather 類,繼承自 AppWidgetProvider 類 。如果你需要打開一個新的數(shù)據(jù)庫或者執(zhí)行其他對于所有的 App Widget 實例只需要發(fā)生一次的設置,那么這里是完成這個工作的好地方。(參見下面的創(chuàng)建一個 App Widget 配置活動 Creating an App Widget Configuration Activity。當這些廣播事件發(fā)生時, AppWidgetProvider 將接收到下面的方法調(diào)用: onUpdate(Context, AppWidgetManager, int[]) 這個方法調(diào)用來間隔性的更新 App Widget , 間 隔 時 間 用AppWidgetProviderInfo 里的 updatePeriodMillis 屬性定義(參見添加AppWidgetProviderInfo 元數(shù)據(jù))。為了針對桌面部 件不同的狀態(tài)執(zhí)行不同的操作, AppWidget 框架提供了一個繼承自 BroadcastReceiver 的 AppWidgetProvider 類。 } } 制作 widget應用程序 桌面部件 widget 是一種利用 AppWidget 框架將應用程序的某個部件擺放在桌面,以便于用戶快速了解信息以及操作應用程序的桌面組件,如未完成的日歷項、音樂播放器的播放暫停和當前播放音樂的信息等。 if (
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1