0

アプリケーションに 3 つ以上のセカンダリ ライブ タイルを実装しようとしています。私はこのサンプルに従いましたアプリ バーのピン留めボタンを使用してセカンダリ タイルを作成します。NotificationExtensions Library を使用してセカンダリ タイルを更新しています。現在、通知キューを使用して各ライブ タイルをローカルで更新しようとしているが、更新の全体的な動作がせいぜい不安定であるという問題に直面しています。3 つのタイルのうち 1 つだけが継続的に更新され (正常に更新された固定タイルはありません)、残りは 1 回だけ更新され、そこで停止します。これは、通知が適切にキューに入れられていないことに関係していると思いますが、どこが間違っているのかわかりません。最初は、すべてのセカンダリ タイルの作成とそれぞれの通知ロジックは別のコード ビハインドにありました。それらを1つのページにまとめようとさえしましたが、それでも同じ結果が得られます.

            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(true); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile1); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile2);

残りの二次タイルについても同様です。

これに関する助けに感謝します。

4

1 に答える 1

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);

さらに、これらの記事には、セカンダリ タイルとライブタイルを使用して適切に動作するサンプル コードが含まれており、これらを自由に借りることができます

: Windows 8 アプリでのライブ タイルの操作

于 2013-03-14T05:30:47.620 に答える