【问题标题】:Android causes Cordova apps to restart when using Cordova Camera and Capture plugins使用 Cordova Camera 和 Capture 插件时,Android 会导致 Cordova 应用程序重新启动
【发布时间】:2014-06-25 00:25:23
【问题描述】:

当 Cordova 应用程序置于后台以使用相机或媒体捕获插件时,似乎会发生常见故障...Android 活动服务似乎在寻找内存以释放并终止 Cordova 活动,这样当用户完成捕获任务时,应用程序会重新启动。在此处查看 SO 线程:

PhoneGap camera restarts the application

这完全是 UX 失败,很可能会阻止我发布我的 Cordova 应用程序。人们不会善待他们的照片丢失。我正在使用 Cordova 3.3 和较旧版本的 Capture 插件作为一个月前的升级导致了重大更改,我回滚了。无论如何,似乎有人在某个时候创建​​了一个名为前景摄像头的自定义插件,该插件永远不允许应用程序进入 onStop 状态,从而解决了问题:

https://code.google.com/p/foreground-camera-plugin/

不幸的是,这个自定义插件已经过时了(Cordova 2.4)。是否可以修改本机 Cordova 插件以防止这种可怕的重启行为?有没有这样做的计划?还是只能通过从头开始创建一个全新的相机插件而不使用本机相机应用程序才能实现?

我已发布到 Cordova 开发人员列表,但还没有回复。对如何最好地解决这种情况的任何想法表示赞赏。

谢谢。

【问题讨论】:

  • 我最近遇到的问题越来越少。我不确定最终有什么帮助,但我在其他地方遵循了一些建议来卸载 3rd-party 相机应用程序并重新启动我的设备。我确实碰巧有一些我没有使用的应用程序(特别是 VSCO 和其他应用程序),它似乎已经成功了。最终,这不是一个很好的解决方案,但与此同时,至少应用程序崩溃并没有扼杀我的演示。
  • 有人找到解决办法了吗?

标签: android cordova android-activity camera cordova-plugins


【解决方案1】:

实施适当的应用生命周期似乎是解决此问题的推荐方法:

http://cordova.apache.org/docs/en/dev/guide/platforms/android/index.html#what-makes-android-different

【讨论】:

    【解决方案2】:

    您也许可以在您的应用中使用相同的相机插件。尝试在插件启动之前尽可能减少 RAM 消耗。

    • 移除隐藏的 DOM 节点
    • 通过删除未使用的对象/实例来释放 JavaScript RAM

    我们在 RAM 很小的 Android 2.3 手机上遇到了这个问题。释放所有可能的 RAM 最终解决了这个问题。该应用程序在拍照时暂停,而不是被杀死并重新启动。

    【讨论】:

    • 我遇到了同样的问题。如何检测和删除未使用的对象和实例?
    【解决方案3】:

    我检查了几个相同问题的帖子。尝试了一切,直到我发现这个:

    为调用相机的事件更改 html 中锚标记的按钮标记: 改变

    <button data-icon="camera" id="btn-get-image">Capturar Imagen</a>
    

    为此

    <a href="" class="ui-button" data-icon="camera" id="btn-get-image">Capturar Imagen</a>
    

    可以在此处找到更多信息。 Cordova app restart after getting picture from capture or photo Librairie

    【讨论】:

      猜你喜欢
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2018-06-22
      • 2017-09-20
      • 1970-01-01
      相关资源
      最近更新 更多