android - startForeground() 导致 Cordova 出现问题

标签 android cordova service hybrid-mobile-app

我在我的 cordova 应用程序中使用了一项服务,该服务会生成 startForeground onCreate 中的通知。如果应用程序通过滑动被杀死并重新启动,则不再触发 cordova device-ready 事件。看来cordova重新启动应用程序时 undefined object 本身。我收到以下错误消息:

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 device-ready

编辑:

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

  • 切勿触摸正在运行的系统
  • 我不知道在 never 版本中什么可能不再起作用,因为我在我的应用程序中安装了许多插件。
  • 我很懒。

知道从 3.6 到 5.1 有什么改变可以解决这个错误,以及我是否可以相应地更新我的 3.6 代码?

编辑2:

不是 this question 的副本.在这个问题中错误地传递了 deviceReady 回调。在我的应用程序中并非如此,仅当我不使用 startForeground 时才工作是没有意义的为我服务。

最佳答案

您的应用生命周期似乎存在问题。当您滑动或强制关闭应用程序时,应用程序进程将被终止,因此,如果您没有在状态包中保存依赖对象或变量,则在重新启动时它们将返回为 null,因为 Activity 假设这些东西可用。你能粘贴你在 onCreate() 中的代码吗?我猜那是你定义cordova的地方。

关于android - startForeground() 导致 Cordova 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916453/

相关文章:

java - 如何从 ArrayList<String> 中删除文本文档以外的所有元素?

cordova - Phonegap 无法通过此错误存档 "Command/usr/sbin/chown failed with exit code 1"

html - jQuery Mobile 和 PhoneGap 之间的区别

javascript - 通过 JavaScript 检测应用程序是否在 phonegap 中运行的最有效和可靠的方法

Angular 2 无法解析服务的所有参数

android - iOS 等同于 Android 服务?

java - 为什么我的 ListView 中的项目不可点击?

java - 解析 XML 并检索信息 多层节点 Deep Java/Android

android - Twilio android sdk 增加了应用程序大小 36 MB 可以减少吗?

c++ - Windows 服务写入 Windows TEMP 文件夹