Windows Mobile 天氣預報實現

2021-05-22 19:29:19 字數 2201 閱讀 1580

最近在做個專案,其中用到天氣預報模組,如果自己在後台每天更新天氣資訊,必然存在更新不即時、花費大量人力等問題,因而,我採用yahoo提供的天氣服務,通過解析yahoo的rss資料,顯示在ppc上,然而,如果在windows mobile上接卸rss資料,對ppc的cpu是個很大的考驗,因而,我設計通過web service的方式進行實現,在web service上呼叫yahoo的服務,取得資料後,進行解析,將部分使用者資料返回給客戶端,這樣大大減小了客戶端的壓力。

同時,如果使用者每次進入該模組,都去web service上去取資料,web service到yahoo去資料,這樣,必然系統的執行速度會減慢,本人採用資料快取的機制,當使用者在一天之內第一次進入天氣預報模組時,系統會到web service上去取資料,並將取得的資料儲存到ppc 端的本地資料庫中,在當日的其他次數進入模組時,直接從本地獲取,大大增快了系統的執行速度和減少網路流量,ppc上本地資料庫採用sql lite資料庫。

下面,將幾個關鍵模組**貼出來,以供需要者參考!

web service服務:

///

/// 獲取三天內天氣情況

///

/// 城市編碼

///

[webmethod(description = "獲取三天內天氣情況")]

public weatherlist getweatherinfo(string citycode)

// to channel

if (tmp.movetofirstchild() == false)

// to title detail

if (tmp.movetofirstchild() == false)

doelse if (i == 1)

else if (i == 2)

i++;

break;

}} while (tmp.movetonext());

tmp.movetoparent();

break;

}} while (tmp.movetonext());

return result;

}catch

}上面的方法是獲取乙個物件,該物件中包含三個資料,分別為最近三天的天氣資料。

///

/// 獲取天氣圖示

///

/// 圖示所在伺服器位置

///

[webmethod(description = "獲取天氣圖示")]

public byte getweatherimage(string fileurl)

resp.close();

wrtr.close();

respstream.close();

}//讀取檔案

filestream fs = file.openread(imagefolder + filename);

byte res = new byte[fs.length];

fs.read(res, 0, res.length);

fs.close();

return res;

}catch

}上面的方法實現了從yahoo讀取天氣圖示,在讀取的過程中,為了增快系統執行速度,在每次獲取之前,先檢測本地是否存在該,如果存在,則直接通過io流返回本地,否則先將yahoo的儲存到本地,在進行返回操作。

ppc端邏輯:

///

/// 獲取天氣資訊,並顯示在頁面上

///

/// 城市編碼

public void getweatherdata(string citycode)

cncalendar.***ate dt = new cncalendar.***ate(datetime.now.date);

this.label8.text = dt.getlunarholday();//農曆

weatherlist list = locallogic.getweatherlist(citycode);

if (list == null)

if (list != null)

this.picturebox1.image = new bitmap(imagefilefolder + list.todayweather.imagefilename);}}

catch (exception ep)

finally

}

玩轉windows mobile選單

1.wm的選單比較特殊,首先要有乙個放置選單的地方,這就是 menu bar 乙個視窗,擁有視窗控制代碼 hwnd 可以通過 showwindow 來顯示和隱藏 a 系統缺省會建立乙個空的 menu bar 如在dialog 模式下,menu bar 上只顯示了乙個輸入法圖示,returns men...

Windows Mobile開發簡介

windows mobile開發簡介 簡單介紹windows mobile上的應用軟體開發過程 os windows mobile windows mobile上的應用軟體開發主要用visual c vb,visual c ide用visual studio 2005以上版本。helloworld ...

windows mobile傳送簡訊

windows mobile傳送簡訊應用分為兩種,一是呼叫windows mobile自有的傳送簡訊視窗,將接收使用者的手機號碼傳遞給該視窗,完成簡訊傳送,另一種是通過呼叫api將文字傳送給指定的號碼,這中傳送方式對於使用者是無感知的視窗簡訊 視窗簡訊實現比較簡單,可以直接使用下面的啟動引數啟動系統...