Android очистить поток веб-просмотра, освободить память, избежать OutOfMemoryError

Я показываю довольно большое изображение в веб-просмотре, поэтому что функции масштабирования и другие удобства для просмотра уже доступны.

В первый раз отображается правильно. B но после выхода из действия и возврата к нему приложение вылетает из-за ошибки OutofMemoryError, связанной с потоком веб-просмотра.

Я пытался несколько вещей, чтобы попытаться закрыть веб-просмотр или остановить поток, или очистить использование памяти, но но безрезультатно. Вот примеры кода, который я добавил в свои действия ' onStop () function

    wv.stopLoading();
    wv.clearCache(true);
    //removeView(wv);
    wv.clearView();
    wv.freeMemory();
    wv.destroy();
    try {
        Class.forName("android.webkit.WebView").getMethod("onPause", (Class[]) null).invoke(wv, (Object[]) null);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

В любом случае не стесняйтесь критиковать любую из этих строк кода, но дело в том, что они не влияют на ошибку в все! Это связано с тем, что сам поток webviewcore не освобождает память.

Это меня тревожит, потому что даже если бы я использовал меньшее изображение, похоже, что это все равно в конечном итоге произойдет. Помощь?

10
задан CQM 20 June 2011 в 17:39
поделиться