Ergebnis 1 bis 12 von 12
-
Mich gibt's schon länger
- 21.01.2013, 07:38
- #1
Hallo, ich aktualisiere meine LiveTile über einen ScheduledTaskAgent. Den Agenten starte ich beim Verlassen meiner App. Leider wird der Agent gestoppt, wenn man das Phone ausschaltet. Beim Einschalten wird der Agent aber nicht automatisch wieder gestartet. Gibt es evtl. einen Autostart oder einen ähnlichen Dienst bei Windows Phone 8, über den ich den Agenten beim Hochfahren starten kann?
-
Gehöre zum Inventar
- 21.01.2013, 08:42
- #2
Taucht das Problem bei dir auf einem physischen Phone eigentlich auch auf oder nur im Emulator? Generell werden PeriodicalAgents (schätze so einen verwendest du) nämlich nur deaktiviert wenn der User sie eben in den Einstellungen abschaltet oder wenn die App für 2 Wochen nicht gestartet wurde.
-
Mich gibt's schon länger
- 21.01.2013, 08:55
- #3
Das Problem taucht leider auch beim physischen Phone auf. Stimmt, ich nutze den PeriodicalAgent und starte ihn mit "ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));" Evtl. ist das ja das Problem? Leider bin ich ein vollkommender Newcomer in der Windows Phone Entwicklerwelt und weiß noch nicht, wie ich den Agenten anders starten und stoppen kann.
-
Gehöre zum Inventar
- 21.01.2013, 09:08
- #4
Ok, das ist dann wohl das Problem: LaunchForTest ist NUR für das Debugging gedacht, da das System bei attachtem Debugger die Background Agents nicht automatisch startet (oder man ja z.B. nur alle 3 Stunden den laufen lässt aber beim Debuggen da halt natürlich nicht drauf warten will).
Schau doch mal hier rein: http://msdn.microsoft.com/en-us/libr...vs.105%29.aspx
Ansonsten kann ich nur empfehlen sich da mal ein Beispielprojekt zu den Tiles von dev.windowsphone.com runterzuladen, da wird das alles hergezeigt wie es funktionieren soll.
-
Mich gibt's schon länger
- 21.01.2013, 09:47
- #5
Vielen Dank für den Tip. Ich hatte schon gelesen, dass LauchForTest nur für das Testen des Agents gedacht ist. Nun möchte ich aber die LiveTile menütlich aktualisieren. Ich schau mir deine Tips mal an und hoffe das die menütliche Aktualisierung auch ohne die LauchForTest Methode zu realisieren ist.
-
Gehöre zum Inventar
- 21.01.2013, 10:08
- #6
Nein, ist sie nicht - du kannst einen ScheduledTask nur alle 30 Minuten ausführen lassen. Bzw. wenn der User den BatterySafer aktiviert werden die Hintergrundtasks gänzlich deaktiviert. Eine Möglichkeit wäre noch eine PictureTile (weiß grad nicht welche Klasse das ist) zu nutzen und halt mehrere Tiles zu hinterlegen die das System dann selbst durchrotiert (falls es z.B. mehrere Nachrichten gibt die man anzeigen will).
Hintergrund der Einschränkung ist halt, damit nicht alle Minute irgendwas im Hintergrund losläuft und den Akku leersaugt.
-
Mich gibt's schon länger
- 21.01.2013, 10:22
- #7
Ah so, ist schon irgendwie verständlich, dass der Akku durch solche Funktionen geschützt werden soll. Dann wird aber quasi das Ausführen des Tasks mit LauchForTest forciert, denn damit klappt ja das minütliche Aktualisieren der LiveTile. Weißt du evtl. wie die minimale oder maximale Aktualisierungsrate bei einem Resource-Intensive Task ist? HTC hat ja z.B. eine Live Tile Uhr vorinstalliert. Die müssen es ja auch irgendwie hinbekommen, die Tile minütlich zu aktualisieren.
-
Gehöre zum Inventar
- 21.01.2013, 11:06
- #8
LaunchForTest wird dir beim deployen in den Marketplace wahrscheinlich einfach nicht durchgehen oder aber einfach keine Funktion mehr haben (bin mir da jetzt gerade nicht sicher - jedenfalls kriegst du minütliche Aktualisierung nicht in den Marketplace).
Apps der Gerätehersteller musst du da leider aus der Betrachtung herausnehmen - die haben zusätzliche Berechtigungen und Möglichkeiten die so etwas zulassen, die für normale Entwickler aber nicht offenstehen.
Der ResoureIntensive Task wird dir da nicht helfen. Der darf zwar längere Zeit aktiv sein und mehr Speicher benötigen wird aber generell nur ausgeführt wenn:
a) Das Smartphone am Ladestrom hängt UND
b) der Ladestand des Akkus > 90% beträgt UND
c) eine WLAN-Verbindung besteht
Zu den ganzen Constraints für Background Agents schaust du am besten hier rein: http://msdn.microsoft.com/en-us/libr...ntensiveAgents
Was ist denn genau dein Use-Case? Also was willst du da auf der Tile darstellen?
-
Mich gibt's schon länger
- 21.01.2013, 11:17
- #9
Das hört sich natürlich nicht gut an. Ich möchte eine App für den Maschinenbau entwickeln. Dabei möchte ich aktuelle Ist-Parameter einer Maschine möglichst zeitnah auf der Live Tile darstellen, also Drücke, Temperaturen, etc. oder auch aktuelle Störmeldungen als Toast ausgeben. Da ist eine Latenz von einer halbe Stunde einfach zu lang.
Weisst du evtl. wie z.B. Weckzeiten von Wecker-Apps getriggert werden? Die müssen ja doch auch minutengenau abgefragt werden.
-
Gehöre zum Inventar
- 21.01.2013, 11:35
- #10
Du kannst Scheduled Notifications erstellen die zu einer bestimmten Uhrzeit eine Toast-Nachricht anzeigen, siehe: http://msdn.microsoft.com/en-us/libr...dNotifications
Das hilft dir in deinem Fall aber auch nicht weiter. Das Multitasking in WP8 ist einfach nicht dafür konzipiert auf einer Live-Tile ständig Live-Infomationen abzufragen. Wenn du halbwegs zeitnah etwas aktualisieren willst bleibt dir nur die Tile über den Push-Dienst zu aktualisieren. D.h. du hättest ein WebService dass die Daten der Maschine ausliest und im Alarmfall diese dann ans Device pusht. Dazu muss man aber anmerken, dass für wirklich kritische Dinge Microsoft davon abrät die Push-Dienste zu nutzen, da nicht sichergestellt ist dass Push-Nachrichten wirklich immer ankommen.
Eine andere Variante von Apps für so etwas ist es dass sie unter dem Lockscreen weiterlaufen. Das funktioniert dann natürlich nur solange man sie auch wirklich weiterlaufen lässt und nirgends sonst hinwechselt. Bei Weckern ist das üblicherweise kein Problem, da man ja ohnehin schläft.
-
Mich gibt's schon länger
- 21.01.2013, 12:22
- #11
OK, da hast Du mir in jedem Fall erst mal die Augen geöffnet, was mit Live Tiles geht und was nur unter Umständen geht. Trotzdem frage ich mich immer noch, wie HTC die Live Tile Uhr realisiert? Haben die andere APIs zur Verfügung, als wir privaten Entwickler? Und wenn ich "Firmen-Apps" entwickle, darf ich dann Methoden wie "LauchForTest" verwenden? Und andererseits beenden ich ja die Wecker App auch und trotzdem kommt um die eingestellte Uhrzeit ein Alarm hoch. Das wird dann aber sicher nicht mit einem Task Scheduler realisiert, sondern über irgend einen anderen Mechanismus, denn unter Einstellungen->Anwendungen->Hintergrundaufgaben steht ja nichts vom Wecker drin. Wie dem auch sei, ein bisschen ernüchternd ist das alles schon...
---------- Hinzugefügt um 13:22 ---------- Vorheriger Beitrag war um 13:16 ----------
Hier ist noch das HTC 8S mit der minutengenauen Uhrzeit auf der Live Tile..
http://images.otto.de/asset/mmo/form...ne-7571925.jpg
-
Gehöre zum Inventar
- 21.01.2013, 12:26
- #12
Ja, das ist so - hab ich aber auch schon beides in den Posts oben drinnenstehen, hier nochmal:
Bei den Scheduled Notifications taucht das dann nicht im Multitasking-Bereich auf, einfach auch weil da dann zu diesem Zeitpunkt keinerlei Code von dir läuft sondern das komplett vom System erledigt wird.
Wegen zusätzlicher Möglichkeiten für FirmenApps kann ich jetzt nichts sagen - durch die Zertifizierung müssen diese ja nicht aber ob du dann mit LaunchForTest was machen kannst kann ich dir leider trotzdem nicht beantworten. Mein Verdacht wäre aber: nein.
Ähnliche Themen
-
Autostart
Von Comm4nd3r im Forum HTC HD2 ProgrammeAntworten: 3Letzter Beitrag: 07.12.2009, 19:13 -
Autostart
Von Fat Tony im Forum HTC Touch Pro 2Antworten: 3Letzter Beitrag: 12.07.2009, 10:12 -
Autostart
Von Filewile im Forum HTC Touch Diamond 2Antworten: 3Letzter Beitrag: 14.06.2009, 15:34 -
Autostart im G1?
Von svenruppelt im Forum T-Mobile G1Antworten: 5Letzter Beitrag: 05.03.2009, 15:07 -
REG Datei in Autostart für Doppelte Kontakte ?
Von Hedi im Forum HTC Touch DiamondAntworten: 6Letzter Beitrag: 21.08.2008, 21:01
Pixel 10 Serie mit Problemen:...