Как переместить кеш WebView на SD? - PullRequest
6 голосов
/ 02 августа 2010

Я видел некоторые приложения, такие как браузер Dolphin (не HD-версия, обычная), использующая кеш-SD для веб-просмотра, но я не могу понять, как это сделать, кто-нибудь знает, как это сделать? сделать это или указать мне в правильном направлении? Любая помощь с благодарностью! Спасибо:)

Ответы [ 2 ]

6 голосов
/ 29 марта 2012

Вот статья, которая описывает, как именно изменить кеш-память веб-просмотра для использования SD-карты: http://www.devahead.com/blog/2012/01/saving-the-android-webview-cache-on-the-sd-card/

Я уже проверил его в своем приложении, и оно доказало свою работоспособность.

public class MainApplication extends Application {
    // ...

    @Override
    public File getCacheDir() {
        // NOTE: this method is used in Android 2.2 and higher
        File cachePath = this.getExternalCachePath();
        return cachePath != null ? cachePath : super.getCacheDir();
    }

    private File getExternalCachePath() {
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            File externalStorageDir = Environment.getExternalStorageDirectory();
            // {SD_PATH}/Android/data/com.package.name/cache
            File extStorageAppCachePath = new File(externalStorageDir, "Android" + File.separator + "data" + File.separator + this.getPackageName() + File.separator + "cache");

            return extStorageAppCachePath;
        }

        return null;
    }
}

public class SomeWebViewActivity extends Activity {
    // ...

    @Override
    public File getCacheDir() {
        // Android 2.1 and lower
        return this.getApplicationContext().getCacheDir();
    }
}
1 голос
/ 02 августа 2010

Ну, у объекта WebSettings есть несколько set...Path() методов.Неясно, есть ли какие-либо из них для фактического кэша.Существует также объект CacheManager, который имеет несколько статических методов, связанных с кешем, но не имеет очевидного способа изменить местоположение кеша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...