Grabsteine und Windows Phone 7

16. August 2010

Man mag sich nun fragen, was haben Grabsteine und das Windows Phone 7 OS miteinander zu tun? Die Antwort ist recht einfach: Da Windows Phone 7 kein echtes Multitasking für “Apps” von Drittanbietern unterstützt, wird dem Entwickler der sogenannte Tombstoning-Mechanismus angeboten, um seinen aktuellen Zustand oder seine geladenen Objekte zu persistieren.

WinPhone7_TombStoning Nach der Reaktivierung der Anwendung kann dann auf diese persistierten Objekte zugegriffen werden, so dass der Anwender im Idealfall von diesem “Smart Multitasking” gar nichts mitbekommt. Voraussetzung hierfür ist natürlich, das der Entwickler hat an den entsprechenden Stellen an alles gedacht.

Die ab Werk installierten Anwendungen, wie Browser, Zune Player oder die Telefonfunktionen verwenden hingegen “echtes” Multitasking und laufen auch nach Drücken des Zurück- bzw. Start-Buttons im Hintergrund weiter.

Um diesen Tombstoning-Mechanismus nun umzusetzen, benötigt man die Klasse PhoneApplicationService aus dem Microsoft.Phone.Shell Namespace. Mittels PhoneApplicationService.Current.State hat man ein Dictionary, in welches man seine Objekte bzw. Zustände abspeichern kann. Mit den beiden Events ApplicationDeactivated und ApplicationActivated hat man dann die Einsprung Punkte, um die entsprechenden Aktionen auszuführen. Man sollte sich nur bei der Datenmenge begrenzen, da nach 10 sec. die eigene App vom Windows Phone OS gnadenlos abgeschossen wird.

Wichtig ist zu wissen, das bei einer “Reaktivierung” der ApplicationLaunching-Event nicht mehr durchlaufen wird.

Das Hauptargument für das Nichtvorhandensein des Multitaskings bei Microsoft und auch bei Apple ist nach wie vor die Akkulaufzeit, da man bei einem echten Multitasking nicht die Kontrolle hat, welche langlaufenden und stromfressenden Tasks parallel laufen.

Doch in der Zukunft soll wohl auch Windows Phone 7 ein vollwertiges Multitasking unterstützen. Hier einige weiterführende Informationen:

What Windows Phone 7 doesn’t have becomes a hot topic
Exclusive interview with Joe Belfiore, corporate VP of Windows Phone — Engadget
Windows Phone 7 Series multitasking: the real deal – Engadget

Auch das iPhone (iOS4) tut hier übrigens nicht viel mehr, als der Anwendung einige dieser Ereignisse zukommen zu lassen. Echtes Multiprocessing erlauben die Apple Entwickler fremden Anwendungen aber auch nicht:

iPhone’s iOS 4 Multitasking will disappoint: Limited Capabilities : Product Reviews Net
iOS 4 Multitasking Apps for iPhone Approved

Application Settings

Ein anderer Aspekt der einem Windows Phone 7 zur Verfügung stellt, ist die Persistierung von Einstellungen seiner Anwendung. Hierzu verwendet man einen Teil des IsolatedStorage mittels Zugriff auf IsolatedStorageSettings.ApplicationSettings. Die dort Informationen werden im IsolatedStorage gespeichert und stehen der Anwendung dann immer zur Verfügung.