Android-Webview fortsetzen, wenn das Betriebssystem pausiert ist / JavaScript im App-Modus ausgeführt wird?

8

Ersteinstellung Ich arbeite an einer Anwendung, die JavaScript ausführen muss, wenn die App nicht im Vordergrund ist. Das Problem scheint zu sein, dass, wenn die App in den Hintergrund gestellt wird / die Webansicht vom Bildschirm getrennt wird, die onPause-Methode der Webansicht aufgerufen wird, die Folgendes für Dokumente tut: Msgstr "" "Pausiert jede zusätzliche Verarbeitung, die mit diesem WebView und dem damit verbundenen DOM, Plugins, JavaScript usw. Verbunden ist."

Nach dem, was ich bis jetzt gefunden habe, scheint meine beste Wette darin zu bestehen, Reflektion zu verwenden, um die "onResume" -Methode des Webview aufzurufen, die alle diese Prozessunterbrechungen rückgängig machen sollte. Mit meiner aktuellen Implementierung erhalte ich eine Instanz dieser Methode, aber wenn sie aufgerufen wird, scheint nichts zu passieren, da mein nachfolgender JavaScript-Aufruf nichts tut (beachte, dass das funktioniert, wenn ich die Anwendung geöffnet und im Vordergrund habe).

Hat sonst jemand ein Problem in meinem Code oder eine Lösung zum Ausführen von JavaScript, wenn sich Ihre App im Hintergrund befindet, ohne die App vollständig zu starten?

Die Push-Nachricht kommt mit der Aussage, dass JavaScript ausgeführt werden muss, damit eine Absicht gesendet wird, um den im Hintergrund laufenden Dienst zu benachrichtigen:

%Vor%

Im onReceive meines Broadcast-Empfängers, der im Hintergrunddienst läuft, läuft immer:

%Vor%

reflectHiddenMethod-Reflektionsmethode:

%Vor%     
Bob Love 20.12.2012, 21:15
quelle

1 Antwort

1

Leider wird das nicht funktionieren. Ein WebView ist eine UI-Komponente und muss daher an das Fenster angehängt werden. Es gibt andere Referenzen hier auf StackOverflow darüber wie hier: Android Webview in einem Service? .

Eine Möglichkeit wäre, in alternativen JavaScript-Bibliotheken zu suchen, um Ihren Code auszuführen, ohne dass ein WebView, z. Rhino, V8 oder Spidermonkey.

Aber wahrscheinlich wäre die beste Lösung, Ihr Push-Messaging stattdessen in Java zu implementieren.

    
André 01.01.2013 01:02
quelle

Tags und Links