2016-05-13 4 views
0

Beim ersten Laden unserer Anwendung, machen wir Hunderte von Worklight invokeProcedure Aufrufe, die bis zu 20 Minuten bis zu einer Stunde dauern, um vollständig abzuschließen. (Jeder dauert weniger als 10 Sekunden, funktioniert also gut.) Wenn jedoch der Bildschirm für die Gerätesperre erscheint, wird die Anwendung angehalten. Wenn ich nicht schnell genug auf den Bildschirm für die Gerätesperre antworte, wird die invokeProcedure deaktiviert Ladevorgang.MobileFirst App wird ausgeführt, während das Gerät gesperrt ist?

Gibt es eine Möglichkeit, die Anwendung unter Windows, iOS und Android zu konfigurieren, um fortzufahren, wenn der Sperrbildschirm angezeigt wird?

+0

Hunderte von Aufrufaufrufen? Könnten Sie nicht versuchen, die Adapteranrufe (auf dem Server) so viel wie möglich zu verketten? –

+0

Nein, wir zerlegen sie absichtlich in kleinere Teile, so dass jedes kürzer ist als die Socket-Timeouts zwischen dem Worklight- und Backend-Server. Das Problem ist, dass die App pausiert und das invokeProcedure fehlschlägt. –

+0

Welche Version von MobileFirst? –

Antwort

1

Sie möchten vielleicht eine Kombination aus dem Verhindern der Bildschirmsperre und der Hintergrundverarbeitung, die Idan Adar vorschlägt, betrachten, um ein eleganteres und kontrollierbareres UX zu bieten.

Für iOS kann das Festlegen der Eigenschaft idelTimerDisabled an den richtigen Stellen in der Verarbeitung die Bildschirmsperre verhindern. Wenn andere externe Gerätevorgänge ausgeführt werden, können Sie den Prozessstatus der restlichen Prozeduraufrufe problemlos abschließen und speichern sie, wenn die App wieder aktiv wird.

[UIApplication sharedApplication].idleTimerDisabled = YES; 

Ein ähnlicher Ansatz sollte in anderen Plattformen unterstützt werden.

+0

Wir konnten einen Weg finden, den Sperrbildschirm in Windows zu deaktivieren und setzen diesen Ansatz für Android und iOS fort. Die Einstellung für den Hintergrund-Abruf funktionierte überraschenderweise nicht auf iOS. Die App hielt weiter an, als der Bildschirm gesperrt wurde. –