вам также нужно проверить networkInfo на ноль
так что в основном ваш оператор if должен быть
if(cm.getActiveNetworkInfo() == null || !cm.getActiveNetworkInfo().isConnected()){
//load cache
}else{
//load default
}
Не забудьте добавить эти разрешения
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Что касается AppCachePath, если вы строите для Android 2.2+, используйте вместо этого
engine.getSettings().setAppCachePath(getApplication().getCacheDir().toString());
Это гарантирует, что кэш будет удален при удалении приложения