Ich benutze einen Service in meiner Cordova App, die eine startForeground
Benachrichtigung im onCreate erzeugt. Wenn die App durch Streichen getötet und erneut gestartet wird, wird das cordova-Gerät-bereit-Ereignis nicht mehr ausgelöst. Es scheint das cordova
Objekt selbst ist nicht definiert, wenn die App neu gestartet wird. Ich erhalte die folgende Fehlermeldung:startForeground() verursacht Probleme mit cordova
E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/src/jsFile.js:31
Zeile 31 und folgende:
cordova.exec(function (r) {
if (callback) {
callback(r);
}
}, function (err) {
if (callback) {
callback(false);
}
}, "Plugin", "functionName", []);
Das Problem tritt nur, wenn ich die startForeground
in meinem Dienst zu nutzen, wenn ich diesen Teil des Codes auf Kommentar es funktioniert alles richtig. Ich brauche dringend Hilfe zu diesen Fragen:
startForeground
starten, aber immer noch den cordova geräten bereit nach der Tötung und Neustart der App auslösenEdit:
Nachdem zwei schnelle Beispiel Projekte, eines in Cordova 3.6 (die Version, die ich für meine aktuelle App verwende) und weiter mit Cordova 5.1, erkannte ich, dass das Problem in der neuen Cordova-Version nicht auftritt. Allerdings möchte ich nicht wirklich aktualisieren, denn:
- niemals ein laufendes System
- Ich weiß nicht berühren, was nicht mehr funktionieren könnte in der nie Version, da ich viele Plugins in meiner App installiert haben .
- Ich bin faul.
Irgendeine Idee, was von 3.6 zu 5.1 geändert werden könnte, die den Fehler lösten, und ob ich meinen 3.6 Code entsprechend aktualisieren könnte?
Edit2:
Dies ist nicht ein Duplikat this question. Der gerätebezogene Rückruf wurde in dieser Frage falsch übergeben. Dies ist in meiner App nicht der Fall, und es wäre nicht sinnvoll, nur zu arbeiten, wenn ich startForeground
in meinem Dienst nicht verwende.
können Sie Ihre Frage bearbeiten und den JAVA-Code (den Plugin-Code) angeben. –
Es spielt keine Rolle (99,9% sicher), wie ich jedes Plugin, das ich will, aufrufen kann und der Fehler bleibt gleich. –
Nur ein einfacher Vorschlag: Wenn Sie immer noch das Problem haben (ich denke, Sie haben eine Lösung gefunden), ist Ihr 'useCapture'-Parameter am Ende des Ereignisses auf' false' gesetzt: 'addEventListener ('deviceready', onDeviceReady, false); '? –