【Kotlin/Android Studio】WebViewのキャッシュを操作する方法!
この記事からわかること
- Kotlin/Android StudioでWebViewの使い方
- キャッシュを操作する方法
- キャッシュをリセット
- キャッシュの上限容量を指定するには?
index
[open]
\ アプリをリリースしました /
環境
- Android Studio Panda 1 | 2025.3.1 Patch1
- Android OS:15以降
- Kotlin:2.2.21
- AGP:8.12.3
- Gradle:8.13
- macOS(M1):Tahoe 26.2
WebViewでキャッシュを操作する方法
AndroidのWebViewではキャッシュ機能も存在します。通常のブラウザアプリのように同一のURLに対してアクセスされたときに画像、JS、CSSなどの静的ファイルをローカルストレージに保存し、再ダウンロードを防ぎ、パフォーマンスを向上させる仕組みが備わっています。
キャッシュの設定はWebSettingsクラスで管理されています。キャッシュのモードを管理するcacheModeプロパティはデフォルトでLOAD_DEFAULTが設定されています。これはキャッシュされたリソースが利用可能で期限切れでない場合はそれを使用し、そうでない場合はネットワークからリソースを読み込むようになっています。
WebSettingsインスタンスはWebViewからgetSettingsメソッドを使用して取得します。
val webSettings: WebSettings = myWebView.getSettings()
print(webSettings.cacheMode)
キャッシュを無効にする
キャッシュ機能を使用しないようにするにはcacheModeプロパティにLOAD_NO_CACHEを渡します。
val webSettings: WebSettings = myWebView.getSettings()
webSettings.cacheMode = WebSettings.LOAD_NO_CACHE
キャッシュを有効にする
キャッシュを明示的に有効するにはcacheModeプロパティにLOAD_DEFAULTを渡します。デフォルトでこの値になっているのであえて設定する必要はないですが切り替えたいときなどに戻す際に指定します。
webSettings.cacheMode = WebSettings.LOAD_DEFAULT
またLOAD_CACHE_ELSE_NETWORKを指定するとキャッシュの有効期限が切れていても強制的にキャッシュを使用するようにすることも可能です。
webSettings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
キャッシュを削除する
キャッシュを削除するにはclearCacheメソッドにtrueを渡します。
myWebView.clearCache(true)
キャッシュの上限容量を指定する
キャッシュの上限容量を指定するにはsetAppCacheMaxSizeメソッドに容量を渡します。例えば20MBにしたいなら20 * 1024 * 1024とします。
// キャッシュの上限容量を指定(ここでは20メガバイト)
webSettings.setAppCacheMaxSize(20 * 1024 * 1024)
非推奨になったAPI
Android13から以下のAPIは非推奨になったようです。
// キャッシュを有効にする
webSettings.setAppCacheEnabled(true)
// キャッシュが保存されるパスを設定(アプリのキャッシュディレクトリを使用する例)
webSettings.setAppCachePath(getApplicationContext().getCacheDir().getPath())
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。






