繁体   English   中英

startForeground()导致cordova出现问题

[英]startForeground() causing problems with cordova

我在我的cordova app中使用了一个服务,它在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时才会出现问题,如果我对代码的这一部分进行评论,那么它的工作正常。 我迫切需要一些关于这些问题的帮助:

  • 是否可以手动运行cordova?
  • 如何使用startForeground启动服务,但在杀死并重新启动应用程序后仍然会触发cordova设备就绪

编辑:

在做了两个快速示例项目之后,一个在Cordova 3.6(我用于我的实际应用程序的版本)和Cordova 5.1上,我意识到新Cordova版本中不会出现问题。 但是我真的不想更新,因为:

  • 切勿触摸正在运行的系统
  • 我不知道在Never版本中可能不起作用的东西,因为我在我的App中安装了很多插件。
  • 我很懒。

知道什么可以从3.6改为5.1解决了这个bug,以及我是否可以相应地更新我的3.6代码?

EDIT2:

不是 这个问题的重复。 在这个问题中错误地传递了deviceReady回调。 在我的应用程序中不是这种情况,只有在我的服务中不使用startForeground时才工作是没有意义的。

您的应用生命周期似乎存在问题。 当您滑动或强行关闭应用程序时,应用程序进程将被终止,因此如果您未在状态包中保存依赖对象或变量,则重新启动时它们将返回null,因为活动假定这些内容可用。 你可以将你在onCreate()的代码粘贴到你定义的cordova那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM