每次更新Live Tile时,更新实时图块计数并添加+1

时间:2013-12-18 02:19:45

标签: c# windows-phone-8 windows-phone live-tile

我这里的这个小代码在我的Windows Phone应用程序ScheduledTaskAgent中执行,如果执行此代码,则会显示一些数据。

我在此代码之前进行了比较,只有在有新数据时才会执行。

现在我不知道如何将每次实时磁贴更新+1(一)int添加到我使用的FlipTile的计数中。这是我的代码:

ShellTile appTile = ShellTile.ActiveTiles.First();
                        if (appTile != null)
                        {
                            FlipTileData TileData = new FlipTileData()
                            {
                                Title = "",
                                BackTitle = "my App",
                                BackContent = title.Collection.ElementAt(0).Title.ToString(),
                                WideBackContent = title.Collection.ElementAt(0).Title.ToString(),
                                Count =  ,     //?????
                            };


                            appTile.Update(TileData);

如果执行此代码,如何计算每次计数?

我真的不知道。我尝试使用+1,但它是一个int并且它不会将此+1给予下一个实时图块更新,因此计数应为2.

我必须说ScheduledTaskAgent完成它的工作,然后调用它的一个新实例,所以我认为必须保存在count中首先调用的值,然后在下一次调用时检索并添加到它+1。但是如何?

1 个答案:

答案 0 :(得分:1)

我今天找到了一个简单的解决方案。我利用隔离存储来保存计数,并在每次更新时给它+1,然后再次保存新号码(旧+ 1)=新号码等等:)这是我现在使用的代码。它在ScheduledTaskAgent中完美地工作以更新Live Tile。

ShellTile appTile = ShellTile.ActiveTiles.First();
                        if (appTile != null)
                        {
                            if (IsolatedStorageSettings.ApplicationSettings.Contains("LiveTileCount"))
                            {
                                int count = (int)IsolatedStorageSettings.ApplicationSettings["LiveTileCount"];
                                FlipTileData TileData = new FlipTileData()
                                {
                                    Count = count +1,
                                };

                                IsolatedStorageSettings settings2 = IsolatedStorageSettings.ApplicationSettings;
                                if (!settings2.Contains("LiveTileCount"))
                                {
                                    settings2.Add("LiveTileCount", TileData.Count);
                                }
                                else
                                {
                                    settings2["LiveTileCount"] = TileData.Count;
                                };
                                settings2.Save();
                            }
                            else
                            {
                                FlipTileData TileData = new FlipTileData()
                                {
                                    Count = 1,
                                };

                                IsolatedStorageSettings settings2 = IsolatedStorageSettings.ApplicationSettings;
                                if (!settings2.Contains("LiveTileCount"))
                                {
                                    settings2.Add("LiveTileCount", TileData.Count);
                                }
                                else
                                {
                                    settings2["LiveTileCount"] = TileData.Count;
                                };
                                settings2.Save();
                            }
                        }
                        else
                        {
                            NotifyComplete();
                        }
                    }
                    else
                    {
                        NotifyComplete();
                    }