【发布时间】:2013-12-14 22:08:16
【问题描述】:
我正在从事多个 Phonegap 项目。在其中一些中,我使用了相机功能。
我对这个问题感到困惑(来自 Phonegap 文档):
Android 怪癖
Android 使用 Intent 在设备上启动相机 Activity 捕获图像,在内存不足的手机上,Cordova 活动 可能会被杀死。在这种情况下,图像可能不会出现在 科尔多瓦活动已恢复。
我在我的一台测试设备(HTC One X)上经常遇到这个问题。挺满的,好好测试一下。
我注意到有一个替代插件:https://code.google.com/p/foreground-camera-plugin/ 解决这个问题。但我尽量避免使用插件......(轻松移植到其他平台)。 它适用于 Phonegap 2.4.0,我正在使用 Phonegap 2.9.0
我已经使用了文件 URI 而不是数据(以避免内存问题)。
我的问题是:有人知道 Android 何时决定终止其他活动(例如 Cordova,Phonegap 非常需要)。在什么级别的空闲内存? (百分比,MB)。所以我可以提前检查并警告用户。
我当然希望这个问题得到解决……但似乎不会很快解决……
在第一条评论后编辑
我无意解决真正的问题,我发现这不太可能。这是Android和Phonegap之间的事情。我只需要知道是否可以警告用户这会发生。所以用户可以在继续之前杀死其他一些应用程序......那么这什么时候会发生? android什么时候认为没有足够的内存来让这件事发生?这是我的问题。
2013 年 11 月 29 日编辑
由于 AustinAllover 提供的链接,我现在知道这不仅仅是一个 Phonegap 问题......如果内存太少,Android 相机似乎会杀死所有 Java 应用......所以这个问题比 Phonegap 更通用/仅限科尔多瓦...
【问题讨论】:
-
@AustinAllover :我不认为我理解你的问题,或者你我的问题。在这种情况下,cordova(phonegap)应用程序被 android 杀死(由于内存问题)没有回调。拍照后,phonegap应用从头开始重启……不知道在这之前发生了什么……
-
这个问题有一些有趣的答案...stackoverflow.com/questions/8368091/…
-
谢谢,非常有用....虽然最高评价归于我的问题中提到的插件(支持直到 phonegap 2.4.0)此选项可能有用:但仅在作为开发人员进行测试时:“开发者选项”称为“不保留活动”。
-
目前最好的解决方案是为 Android/Cordova 开发自定义相机插件。如果您想要一个现成的解决方案,请参阅 AustinAllover 的评论。