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

正文內(nèi)容

android平臺天氣預(yù)報(bào)widget的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-資料下載頁

2025-06-19 13:56本頁面
  

【正文】 //可擴(kuò)展 } } else if ((high)) { //int temp = (dataAttribute)。 if () { //可擴(kuò)展 } else { //可擴(kuò)展 } } } }3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 27 @Override public void endElement(String namespaceURI, String localName, String qName) throws SAXException { if ((forecast_information)) { = false。 } else if ((current_conditions)) { = false。 } else if ((forecast_conditions)) { = false。 } } 制作 widget 應(yīng)用程序 桌面部件 widget 是一種利用 AppWidget 框架將應(yīng)用程序的某個部件擺放在桌面,以便于用戶快速了解信息以及操作應(yīng)用程序的桌面組件,如未完成的日歷項(xiàng)、音樂播放器的播放暫停和當(dāng)前播放音樂的信息等。 要為應(yīng)用程序定義桌面部件,首先要在應(yīng)用程序項(xiàng)目的 res/xml/目錄下新建一個 XML 文件來對桌面部件進(jìn)行描述,其描述的信息包括了桌面部件在桌面上所占的空間、更新的周期時間以及部件的布局文件。由于在桌面上所有組件的大小均以單元格為單位,所以這里我們要對桌面部件的最小寬度和最小高度進(jìn)行描述,然后當(dāng)桌面部件最終被添加到桌面上時,其大小會被設(shè)定為最接近的所占單元格數(shù)大小。下面是一個桌面部件的寬或高所占單元格數(shù)換算最小尺寸的公式: 最小尺寸= (單元格數(shù)74).2 (單位:dip) AppWidget 框架是通過接收廣播 Intent 的方式來對桌面部件進(jìn)行控制的,所以每個描述桌面部件的 XML 文件都有一個對應(yīng)的廣播接收器。為了針對桌面部件不同的狀態(tài)執(zhí)行不同的操作,AppWidget 框架提供了一個3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 28 繼承自 BroadcastReceiver 的 AppWidgetProvider 類。這樣我們只需要在應(yīng)用程序中創(chuàng)建一個 AppWidgetProvider 的子類,然后重新實(shí)現(xiàn)不同狀態(tài)下的回調(diào)方法就可以響應(yīng) AppWidget 框架的控制了。 AppWidgetProvider 類擴(kuò)展 BroadcastReceiver 為一個簡便類來處理App Widget 廣播。AppWidgetProvider 只接收和這個 App Widget 相關(guān)的事件廣播,比如這個 App Widget 被更新,刪除,啟用,以及禁用。當(dāng)這些廣播事件發(fā)生時,AppWidgetProvider 將接收到下面的方法調(diào)用: onUpdate(Context, AppWidgetManager, int[]) 這個方法調(diào)用來間隔性的更新 App Widget,間隔時間用AppWidgetProviderInfo 里的 updatePeriodMillis 屬性定義(參見添加AppWidgetProviderInfo 元數(shù)據(jù)) 。這個方法也會在用戶添加 App Widget 時被調(diào)用,因此它應(yīng)該執(zhí)行基礎(chǔ)的設(shè)置,比如為視圖定義事件處理器并啟動一個臨時的服務(wù) Service,如果需要的話。但是,如果你已經(jīng)聲明了一個配置活動,這個方法在用戶添加 App Widget 時將不會被調(diào)用,而只在后續(xù)更新時被調(diào)用。配置活動應(yīng)該在配置完成時負(fù)責(zé)執(zhí)行第一次更新。 (參見下面的創(chuàng)建一個 App Widget 配置活動 Creating an App Widget Configuration Activity。 ) onDeleted(Context, int[]) 當(dāng) App Widget 從宿主中刪除時被調(diào)用。 onEnabled(Context) 當(dāng)一個 App Widget 實(shí)例第一次創(chuàng)建時被調(diào)用。比如,如果用戶添加兩個你的 App Widget 實(shí)例,只在第一次被調(diào)用。如果你需要打開一個新的數(shù)據(jù)庫或者執(zhí)行其他對于所有的 App Widget 實(shí)例只需要發(fā)生一次的設(shè)3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 29 置,那么這里是完成這個工作的好地方。 onDisabled(Context) 當(dāng)你的 App Widget 的最后一個實(shí)例被從宿主中刪除時被調(diào)用。你應(yīng)該在 onDisabled(Context)中做一些清理工作,比如刪除一個臨時的數(shù)據(jù)庫。 onReceive(Context, Intent) 這個接收到每個廣播時都會被調(diào)用,而且在上面的回調(diào)函數(shù)之前。 源文件組織 源程序包括三個 java 類: 一、CurrentWeather 類,繼承自 AppWidgetProvider 類 。使用這個類編程與 App Widget 連接。這個類當(dāng)中還有一個 UpdateService 子類,繼承自 Service。 二、edit 類,繼承自 Acitivity,用于用戶修改要進(jìn)行天氣預(yù)報(bào)的城市。 三、WeatherHandler 類,用于 xml 的解析 下面說明各個類功能的實(shí)現(xiàn) 類之間的協(xié)作 當(dāng)一個 widget 被添加時,CurrentWeather 類會接收 action 為APPWIDGET_UPDATE 的 Intent,CurrentWeather 會啟動一個 Service,由這個服務(wù)與網(wǎng)絡(luò)連接,獲取天氣預(yù)報(bào)信息,因?yàn)楂@得的數(shù)據(jù)形式是 xml 的,所以調(diào)用 WeatherHandle 類進(jìn)行 xml 解析,根據(jù)解析后的結(jié)果將相關(guān)信息顯示在用戶桌面。當(dāng)用戶想改變城市時,點(diǎn)擊桌面上的按鈕,就會觸發(fā)綁定在按鈕上的 PendingIntent,喚醒 edit 這個 Activity,edit 類獲取用戶輸入3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 30 的城市信息后,廣播 Intent 喚醒 CurrentWeather 對 App Widget 進(jìn)行更新。并使用 finish()方法關(guān)閉本頁面。 CurrentWeather 類的實(shí)現(xiàn) 首先定義一個私有類變量來保存城市信息,初始化為“guangzhou,china” private static String city=“guangzhou,china” ; 重寫了 onReceive()方法,如下所示 public void onReceive(Context context,Intent intent) {final String action = ()。if(()){Bundle bundle=new Bundle()。bundle=()。String temp=(Data)。if(temp!=null) {city=temp。}(new Intent(context,))。}} 實(shí)現(xiàn) UpdateService 的功能: 重寫 onStart()方法: 首先根據(jù)類變量 city 的值向網(wǎng)絡(luò)請求數(shù)據(jù),并使用 WeatherHandler類解析 xml 得到該城市天氣信息。 然后使用 RemoteViews 更新 App Widget:RemoteViews updateViews = new RemoteViews(getPackageName(), )。(,city)。(,溫度: + 3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 31 () + 攝氏度)。(,())。(,+ () )。Intent nIntent=new Intent(getApplicationContext(),)。PendingIntent pIntent=(getApplicationContext() ,0,nIntent,0)。 (,pIntent)。 ComponentName thisWidget=new ComponentName(this,)。 AppWidgetManager manager = (this)。 (thisWidget, updateViews)。 edit 類的實(shí)現(xiàn) edit 類是一個 Activity,主要功能是將用戶輸入的城市信息放到 Intent的 extras 中,然后將其廣播出去。下面講述這一過程 點(diǎn)擊“提交按鈕時觸發(fā)以下操作: String city = ((EditText) findViewById()).getText().toString()。 Intent intent = new Intent()。 ()。 (, )。 Bundle mBundle = new Bundle()。 (Data, city)。//壓入數(shù)據(jù) (mBundle)。 sendBroadcast(intent)。 finish()。 如此 CurrentWeather 類便能獲取到一個廣播的 Intent,從 Intent 的extras 中提取城市名稱并更新 widget。 WeatherHandle 類的實(shí)現(xiàn) 這個類的功能是使用 sax 解析 xml 首先導(dǎo)入相關(guān)類: import 。 import 。3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 32 import 。 繼承 DefaultHandler 類,根據(jù) google api 返回的 xml 數(shù)據(jù)格式進(jìn)行解析。 我主要重寫了以下方法: startDocument() endDocument() startElement() endElement() charactors() 使用這些方法即可完成對 xml 文件的解析。3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 33 第 5 章 相關(guān)實(shí)現(xiàn)技術(shù)與體會 本人是首次接觸 android 系統(tǒng)與移動平臺開發(fā),在學(xué)習(xí)和開發(fā)的過程中遇到很多大大小小的問題,下面是我整理的典型問題和解決方案 添加 widget 制作完 widget 之后要在 Android 模擬器中顯示必須要手動添加自己制作的 widget。 剛開始使用 widget 時由于不知道這一點(diǎn),花費(fèi)很長時間在檢查代碼上。 添加 widget 的過程如下所示: 點(diǎn)擊 Menu add,出現(xiàn)以下圖面 選擇 Widgets,在彈出來的對話中選擇自己的應(yīng)用3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 34 RemoteViews 的局限 App Widget 的布局是基于 RemoteViews 的,RemoteViews 主要有以下局限: 一、不支持 findViewById()方法 二、只能使用有限的布局與控件 FrameLayout LinearLayout RelativeLayout AnalogClock Button Chronometer3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 35 ImageButton ImageView ProgressBar TextView不支持這些類的派生。 一開始在我的設(shè)計(jì)中是想把文本輸入框放在桌面的,但是由于RemoteViews 不支持,所以會出現(xiàn)以下錯誤 于是只能修改設(shè)計(jì),增加一個 Activity。 在 widget 中顯示圖片 在還為做成 widget 前,軟件可以使用網(wǎng)上的圖片進(jìn)行顯示,但是做成widget 后, RemoteViews 不支持這種方式。 RemoteViews 有提供了一種方法可以實(shí)現(xiàn)圖片顯示,但是這種方法要先將圖片導(dǎo)入程序 res 中。因?yàn)闀r間問題我沒有在網(wǎng)上尋找 icon 的天氣預(yù)報(bào)圖標(biāo),所以在本次的 widget 設(shè)計(jì)中,沒有顯示天氣的 icon。 在 中進(jìn)行權(quán)限聲明 AndroidManifest 是一個相當(dāng)重要的文件,相當(dāng)于一個注冊表,Activity,Broadcast,Service 都要在這里進(jìn)行注冊。之前我使用CurrentWeather 中的 Service 內(nèi)部類沒有忘記進(jìn)行注冊,導(dǎo)致 Service 沒法3DII 技術(shù)研究和應(yīng)用實(shí)現(xiàn) 36 啟動,程序功能無法實(shí)現(xiàn),為此花費(fèi)我大量時間來檢查代碼。 權(quán)限聲明在智能手機(jī)中是一種比較常見的應(yīng)用程序保護(hù)機(jī)制,Android的基本思想是在 文件中顯示地聲明應(yīng)用程序需要的權(quán)限,防止應(yīng)用程序錯誤地使用服務(wù),不恰當(dāng)?shù)卦L問資源,最終達(dá)到提高Android 應(yīng)用程序的健壯性,改善用戶體驗(yàn)的目的。 Android 中的每種權(quán)限都用一個獨(dú)立的標(biāo)簽表示,比如: 。 。 從這些表示權(quán)限的名稱中,不難發(fā)現(xiàn)其所代表的含義,如 表示發(fā)送短信的權(quán)限。 Android 系統(tǒng)的每種功能或每種特性都用一個權(quán)限來表示
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1