我在我的cordova应用程序中使用服务,该服务在onCreate中生成startForeground
通知。如果该应用程序通过滑动而被杀死并再次启动,那么Cordova设备就绪事件将不再被触发。应用程序重新启动时,似乎未定义cordova
对象本身。我收到以下错误消息:
E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/src/jsFile.js:31
第31行及以下:
cordova.exec(function (r) {
if (callback) {
callback(r);
}
}, function (err) {
if (callback) {
callback(false);
}
}, "Plugin", "functionName", []);
如果我在我的服务中使用startForeground
,如果我对代码的这部分内容进行了评论,那么问题就会出现。我迫切需要一些关于这些问题的帮助:
startForeground
启动服务,但在杀死并重新启动应用后仍会触发cordova设备就绪修改
在做了两个快速示例项目之后,一个在Cordova 3.6(版本I&#39; m用于我的实际应用程序)和Cordova 5.1,我意识到问题确实不发生在新的Cordova版本。但是我真的不想更新,因为:
知道什么可以从3.6改为5.1解决了这个bug,以及我是否可以相应地更新我的3.6代码?
EDIT2:
不是this question的副本。在这个问题中错误地传递了deviceReady回调。在我的应用中并非如此,只有在我不在我的服务中使用startForeground
工作时才有意义。
答案 0 :(得分:1)
您的应用生命周期似乎存在问题。当您滑动或强行关闭应用程序时,应用程序进程将被终止,因此如果您未在状态包中保存依赖对象或变量,则重新启动时它们将返回null,因为活动假定这些内容可用。你可以粘贴你在onCreate()
猜测那些你定义的cordova所在的代码。