I'm using a service in my cordova app which generates a startForeground
notification in the onCreate. If the app is killed via swipe and started again, the cordova device-ready event isn't fired anymore. It seems the cordova
object itsself is not defined when the app is restarted. I get the following error message:
E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/src/jsFile.js:31
Line 31 and following:
cordova.exec(function (r) {
if (callback) {
callback(r);
}
}, function (err) {
if (callback) {
callback(false);
}
}, "Plugin", "functionName", []);
The problem only occurs if I use the startForeground
in my service, if I comment this part of the code out it's all working properly. I desperately need some help on these questions:
- Is it possible to get cordova running manually?
- How to start the service with
startForeground
, but still trigger the cordova device-ready after killing and restarting the app
Edit:
After making two quick example projects, one in Cordova 3.6 (the version I'm using for my actual App) and on with Cordova 5.1, I realized that the problem does not occur in the new Cordova version. However I don't really want to update, because:
- Never touch a running system
- I don't know what might not work anymore in the never version, as I have installed many plugins in my App.
- I'm lazy.
Any idea what could have changed from 3.6 to 5.1 that solved the bug, and whether I could update my 3.6 code accordingly?
Edit2:
This is not a duplicate of this question. The deviceReady callback was passed wrongly in this question. This is not the case in my app, and it wouldn't make sense to only work when I don't use startForeground
in my service.