Я пытаюсь получить твиты из своей учетной записи в твиттере и отобразить самый верхний твит на моей плитке оболочки. Поэтому я создал фоновый агент (периодическая задача), чтобы сделать это. Каждые 30 минут фоновый агент должен получить доступ к моей временной шкале в твиттере, получить мой самый популярный твит и отобразить его на плитке. Проблема в том, что моя плитка обновляется только один раз, то есть когда я запускаю агент, после чего она не обновляется.
Вот мой фоновый код агента:
protected override void OnInvoke(ScheduledTask task)
{
ShellToast popupMessage = new ShellToast()
{
Title = "My First Agent",
Content = "Background Task Launched",
};
WebClient twitter = new WebClient();
twitter.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
twitter.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=dnivra26"));
popupMessage.Show();
}
private void twitter_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error != null)
return;
XElement xmlTweets = XElement.Parse(e.Result);
var message2 = (from tweet in xmlTweets.Descendants("status")
select tweet.Element("text").Value).FirstOrDefault();
UpdateAppTile(DateTime.Now.ToString() + message2.ToString());
}
private void UpdateAppTile(string message)
{
ShellTile appTile = ShellTile.ActiveTiles.First();
if (appTile != null)
{
StandardTileData tileData = new StandardTileData
{
BackContent = message
};
appTile.Update(tileData);
//NotifyComplete();
}
}
Я могу получить лучший твит только один раз.