在WP7中,當應用程式安裝完成之後就會出現在應用程式的列表當中,而在應用程式上長按之後,就會出現Pin to start的功能;這個功能是能夠讓你將你的應用程式顯示在首頁的Tile畫面上;而應用程式放到Start畫面上之後,最會最常被使用者看到、點選的,那麼我們就會希望幫在Start畫面上的應用程式上加上一些訊息,很常見的例如說Email的應用程式會顯示有幾封新的郵件這樣;而除了使用文字的方式來顯示訊息之外,也可以變更背景的圖片,來讓使用者有不一樣的感覺,例如說一個顯示目前天氣狀況的應用程式,用鮮明的圖片來做顯示就會比裡用單純使用文字說明來的更好。那麼,該怎麼變更應用程式的背景圖片呢?
更新應用程式的背景圖片可以使用Push Notification來做,Push Notification能夠做到滿多事情的,而如果說不想要使用Push Notification呢?今天要跟各位介紹的就是另一種方式,利用ShellTileSchedule來做;ShellTileSchedule能夠定時的連到你指定的位置去下載圖片,下載完成之後,就會變成應用程式的背景圖片了。在開始之前,應用程式使用的圖片有一定的規格,建議您依照對應的規格來做圖片的處理,您可以參考在MSDN的這篇介紹Windows Phone 7 應用程式圖示製作指南,上有有相當詳盡的說明喔。
接下來來看看程式的部分,使用ShellTileSchedule的程式碼相當的簡單,例如下面的樣子
sts.Interval = Microsoft.Phone.Shell.UpdateInterval.EveryHour;
sts.StartTime = DateTime.Now;
sts.RemoteImageUri = new Uri(@"http://bauann.myweb.hinet.net/test01.png");
sts.Start();
像是上面的程式碼便會在每個小時到筆者放圖片的位置去下載圖片,並且設定為應用程式的背景圖片;接來來來看看一些屬性的用途是做甚麼用的
- Interval Interval屬性是設定更新的頻率,可以設定為一小時、一天、一周或是一個月
- Recurrence Recurrence是設定更新的方式,是用間隔的(也就是Interval)或是只要進行一次
- RemoteImageUri 這個屬性就是設定要更新圖片的擺放位置了
- MaxUpdateCount MaxUpdateCount是設定要進行更新幾次,在這個次數之後,Schedule就會失效了
- StartTime 這個屬性是設定排程開始的時間
最後再來看一下要注意的事項
- 在裝置鎖定(或是idle)的狀態之下,Tile的背景更新排程是不會進行的,但如果排程時間到了之後,裝置一離開鎖定狀態,就會立即做更新的動作了
- 背景圖片的大小限制是在80KB以下,而下載的時間是以15秒為限;假如下載超過15秒鐘而失敗的話,連續3次失敗之後,排程作業就會被移除不再進行了
參考資料
How to: Update Your Tile Without Push Notifications for Windows Phone
ShellTileSchedule Class