私は本当にあなたの助けが必要です。定期エージェント(OnInvoke)にデータをダウンロードしています。うまく動作しますが、毎晩、データをダウンロードするウェブサイトからダウンロードするデータがありません。それが起こった場合、現在のデータでライブタイルをそのまま(空ではなく)残し、更新しないようにします。更新をダウンロードして解析するためのデータがある場合は、1〜2時間後に続行する必要があります。バックグラウンドタスクがLiveTileを更新しないようにする
私はこれを試しましたが、NotifyCompleteがまだ実行された後にコードが呼び出されたときにこれを試しました。 NotifyCompleteは実行されるコードの残りの部分を停止するはずですか?
MatchCollection matchesMyData = rxMyData.Matches(strHTML);
foreach (Match matchMyData in matchesMyData)
{
GroupCollection groupsMyData = matchMyData.Groups;
//Code for handling downloaded data
}
if (matchesMyData.Count < 1)
{
ShellToast toast = new ShellToast();
toast.Title = "No update: ";
toast.Content = "Webservice returned no data";
toast.Show();
NotifyComplete();
}
私はコードの次の部分を試しましたが、私のバックグラウンドタスクが停止しました。私は再びアプリケーションを起動して再度有効にしなければなりませんでした。どうして?だから、
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("TileID=2"));
if (TileToFind != null && intCount > 0)
{
//Update the live tile
}
何もデータが解析されていない取得したときにそれがあると1時間か2時間後にデータがダウンロードされるときthetileが更新beeingてと、すべてが正常に戻ってする必要がありますように、タイルが残っているはずです。
今すぐショーストッパーですのでお手伝いください。前もって感謝します。
calumさん、ありがとうございました。私のOnInvokeではHTTPWebRequestがあり、それが1回タイムアウトするとNotifyCompleteが呼び出されます。私はコードを実行し続けることを望んでいないので、そこにも戻り値を追加する必要がありますか? – John
コードを見ずに言うのは難しいです。タイムアウトした場合、NotifyCompleteの呼び出し後にコードがヒットすることはありません。 NotifyCompleteをEnvironment.Exitのように扱う - これを呼び出した後、現在のメソッドはアプリケーションが終了する前に完了する。 – calum