Ausgabe:Wie Stoppuhr nach App Tombstone ausführen?
ich einen Stopwatch
implementiert haben, das läuft und der Wert wird zu einem Live-Kachel hinzugefügt. Aber wenn ich den Grabstein schließe oder die App schließe, hört die Stoppuhr auf zu laufen.
Dies ist also ein Problem, bei dem der Anfangswert der abgelaufenen Zeit der Stoppuhr nur auf die Live-Kachel aktualisiert wird, nachdem die App geschlossen wurde.
Frage:
Ich frage mich, welche Optionen verfügbar sind eine Stoppuhr laufen, während die App aufrufen getötet wurde ausgeschaltet und anschließend die CreateLiveTile Verfahren in regelmäßigen Abständen mit dem aktualisierten Stoppuhr Wert?
Ich habe diese Art von Funktion nicht zuvor versucht, also bin ich auf der Suche nach etwas Feedback, was diese Plattform zu bieten hat, um dies zu erreichen.
Code:
Dies ist im Wesentlichen der Code, der die Stoppuhr und die separaten Verfahren läuft CreateLiveTile()
, die mit der verstrichenen Zeit als Parameter eine neue Live-Kachel erstellt:
private async Task ShowTimerConfirmationDialog()
{
//Set timer for current parking tag
SetParkingTagTimer();
//Create the live tile
CreateLiveTile();
}
private void SetParkingTagTimer()
{
//set timer to current elapsed time
StopWatch.Start();
// Get the elapsed time as a TimeSpan value.
var ts = (SelectedParkDuration ?? StopWatch.Elapsed) - StopWatch.Elapsed;
// Format and display the TimeSpan value.
ElapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds/10);
}
private void CreateLiveTile()
{
var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText01);
var tileImage = tileXml.GetElementsByTagName("image")[0] as XmlElement;
tileImage.SetAttribute("src", "ms-appx:///Assets/Logo.scale-140.png");
var tileText = tileXml.GetElementsByTagName("text");
(tileText[2] as XmlElement).InnerText = "Time remaining:";
(tileText[3] as XmlElement).InnerText = " " + ElapsedTime;
var tileNotification = new TileNotification(tileXml);
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
}
}
Sie müssen Hintergrundaufgabe erstellen. Siehe http://sanathwindowsdev.blogspot.in/2014/11/background-task-in-windows-phone-81.html – Archana