2013-03-13 30 views
0

我試圖在我的應用程序中實現兩個以上的輔助活動瓷磚。我已按照此sample在應用欄上使用引腳啓動按鈕創建輔助圖塊。我正在使用存在的NotificationExtensions庫更新輔助圖塊。現在,我面臨的一個問題是,我試圖使用通知隊列在本地更新每個活動切片,但是更新的整個行爲充其量是不穩定的。 3個瓷磚中只有一個瓷磚被連續更新(沒有固定的瓷磚成功更新),而其餘瓷磚只更新一次,然後停在那裏。恐怕這與通知沒有正確排隊有關,但我不知道我的錯在哪裏。最初,我所有的次要磁貼創建和它們各自的通知邏輯都在單獨的代碼隱藏中。我甚至試圖將他們分成一個頁面,但它仍然給出了相同的結果。我使用下面的代碼來創建通知瓷磚內容:Windows 8輔助活動瓷磚不使用本地通知隊列更新

  ITileWideText04 tileContent = TileContentFactory.CreateTileWideText04(); 
      tileContent.TextBodyWrap.Text = "1 secondary tile from NotificationsExtensions!"; 

      ITileSquareText04 squareContent = TileContentFactory.CreateTileSquareText04(); 
      squareContent.TextBodyWrap.Text = "1secondary tile from NotificationExtensions!"; 
      tileContent.SquareContent = squareContent; 


      ITileWideText04 tileContent2 = TileContentFactory.CreateTileWideText04(); 
      tileContent2.TextBodyWrap.Text = "2c secondary tile from NotificationsExtensions!"; 

      ITileSquareText04 squareContent2 = TileContentFactory.CreateTileSquareText04(); 
      squareContent2.TextBodyWrap.Text = "2 secondary tile from NotificationExtensions!"; 
      tileContent2.SquareContent = squareContent; 

      var tile1 = tileContent.CreateNotification(); 
      tile1.Tag = "a"; 
      var tile2 = tileContent2.CreateNotification(); 
      tile2.Tag = "b"; 

,然後更新,像這樣的地磚: TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).EnableNotificationQueue(真); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile1); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile2);

等等的其他次要瓷磚。

欣賞這方面的任何幫助。

回答

0

嗯。什麼可能發生的是,它是在這幾行代碼,你引用每次讓你一個新的更新,並啓用通知隊列只發生在第一個:

TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).EnableNotificationQueue(true); 
TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile1); 
TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile2); 

在您的底部的代碼段,你可以嘗試這樣的事情嗎?

var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile); 
updater.EnableNotificationQueue(true); 
updater.Update(tile1); 
updater.Update(tile2); 

此外,這些文章包含正常工作,與二次磚和現場的瓷磚,其歡迎您從借用的示例代碼:
Real-World Secondary Tiles: Top Three Tips for Working with Secondary Tiles in Windows 8 Apps
Real-World Live Tiles: Working with Live Tiles in Windows 8 Apps

+0

喜珍,感謝您的回覆。我嘗試了上述解決方法,但仍面臨同樣的問題。另外,我已經閱讀了上述文章,雖然您的文章非常棒,可以根據需要提供本地通知,但它沒有用於啓用隊列中本地通知的示例。我想知道是否有我錯過的樣品? – Tinu 2013-03-14 06:21:03

+0

你看過這個樣品嗎? http://code.msdn.microsoft.com/windowsapps/App-tiles-and-badges-sample-5fc49148 – 2013-03-14 06:25:18