相机在phonegap应用程序。重新启动应用程序

时间:2013-11-02 23:13:13

标签: javascript android cordova camera

我正在开发phonegap应用。并使用相机。它几天前就开始工作了。我在最近几天做了很多改变,现在相机工作不正常。它打开相机,但当我拍照,然后从相机应用程序。当我按OK时,它会重启app。

我不明白它是如何做到的。我实际上无法理解它是否可以从我的phonegap应用程序重新启动。 JS代码或它只能从android Java代码重启。

我正在将此代码用于相机:

function takePhoto() {
navigator.camera.getPicture(onCameraPicSuccess, onCameraPicFail, {quality: 50,
    destinationType: Camera.DestinationType.FILE_URI
});

function onCameraPicSuccess(imageURI) {
    alert("coming here in pic success");
    var img = '<div style="padding:4px; margin:10px;  border: solid 2px #666;float: left; width:30%"><img src="' + imageURI + '" width="100%" /></div>';
    $('#images_area').append(img);
 }

function onCameraPicFail(message) {
    alert('Failed because: ' + message);
}

所以任何想法,为什么app。将使用相机应用程序重新启动。通过上面的代码?我的JS代码没有启动画面,但我的Java代码有。所以在按下相机的OK按钮后,我可以看到app。使用back button绑定重新启动,menu button绑定暂时无效。

所以不确定发生了什么。如果你们有任何这样的经历或任何想法,那么随时分享。

如果还有一些事情需要说明。那就告诉我。


在stackoverflow.com上做了一些搜索之后,我开始知道这个问题是android,因为android杀了应用程序。在后台,如果它有较少的内存。所以需要释放内存e.t.c.但我注意到,当我使用JQuery Mobile Forms时,应用程序运行正常。但在我将其更改为自定义后,会出现此相机问题。因此,如果这是与内存相关的问题,那么为什么它会在删除jquery移动表单和进行自定义工作时发生。事实上,现在应用程序在定制工作中更加顺畅。所以我很困惑,无论是与内存有关的问题还是别的什么?以及如何处理这种类型的应用程序。在phonegap中发展。

5 个答案:

答案 0 :(得分:4)

使用

时,phonegap相机API会调用相机应用程序
navigator.camera.getPicture

请在此处阅读 - http://docs.phonegap.com/en/edge/cordova_camera_camera.md.html#Camera

这会将您的应用程序推送到后台,如果内存不足,可能导致您的应用被杀死。

如果您不希望应用程序在相机启动时进入后台,则需要使用前景相机插件。看看它here

您可能需要根据自己的要求进行更改。

答案 1 :(得分:1)

它可能是与内存相关的问题。您可以通过在应用程序清单文件中设置android:largeHeap="true"来增加应用程序的堆大小。

答案 2 :(得分:1)

您不需要创建一个完整的自定义前台摄像头,您只需要向主动垃圾收集器指定要检索旧目标而不是启动新实例。尝试在相机插件中设置保存意图的标记:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

在此处查看我的帖子:https://stackoverflow.com/a/29630548/2782404

此外,增加堆大小并使用singleTask / singleInstance对我来说不起作用

答案 3 :(得分:0)

在android清单文件中,将活动的launchmode设置为“singleTask”或 “singleInstance”。
可能是您的应用程序多次启动活动。

答案 4 :(得分:0)

看到这个链接,它解释说这实际上并不与phonegap有关,而是与android的活动有关。他建议使用名为Foreground Camera Plugin的插件。

PhoneGap camera restarts the application