android - Ionic 3 / Angular 5 App 在(想要的)循环函数中崩溃
问题描述
为了以简化的方式描述我的功能,我想下载大量图像,在我的情况下约为 50 个单位。我使用递归尝试。
因此,只要下载了每张图片,我就会在外部函数中启动所有内容并重复。Image-source 被加载到 Image-object 中,并转换为 Canvas 以获得正确的 src 格式进行保存。附加信息:我无法将它们加载成一堆,必须逐个图像地进行。
在加载了大约一半的图像后,应用程序崩溃了。我认为它认为陷入僵局,这会导致流产。知道如何告诉 Ionic,这些情况应该被忽略吗?
在各种 Android 设备上进行了测试,因此操作系统版本 (4.4 - 8.1) 应该无关紧要。
代码
constructor(...) {
this.downloadImage(this.images);
}
downloadImage(images) {
... downloadStuff...
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.height = img.height;
canvas.width = img.width;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
var src = canvas.toDataURL('image/jpeg');
saveImg(src);
images.splice(0,1)
if(images.length == 0) {
alert("DONE!!");
} else {
this.downloadImage(results);
}
}
img.src = images.photo_url;
}
记忆
Android Studio 错误日志:
A/libc:致命信号 4 (SIGILL),代码 1,tid 23363 (Chrome_InProcRe) 中的故障地址 0xd4502e96,pid 23231 (ft.xxx) E/SurfaceFlinger:无法在层中找到层 (SurfaceView - xxx.MainActivity#0)父母(无父母)。
解决方案
推荐阅读
- git - SVN - 在重新创建存储库结构时合并历史记录
- python - anaconda提示中的Matplotlib目录错误?
- php - mkdir():权限被拒绝 权限已设置
- reactjs - 使用 Firebase 在 React Native Expo 应用程序中验证登录页面,但必须单击按钮两次才能执行完整功能
- php - 在php中添加数组值
- python - 聚合器微服务可以返回多个响应/结果的最有效方式
- ios - 在 Mac 上使用 SwiftUI App Lifecycle 时,@UIApplicationMain 只能用于“类”声明错误
- python - 在 docker 容器中向 reportlab 添加字体
- r - 如何替换特定的向量值?
- heap - 对于使用堆查找前 K 个元素,哪种方法更好 - NlogK 还是 KLogN?