首页 > 解决方案 > 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)父母(无父母)。

标签: androidangularionic-framework

解决方案


推荐阅读