Fetch не использует cookie по умолчанию. Чтобы включить cookie, сделайте следующее:
fetch(url, {
credentials: "same-origin"
}).then(...).catch(...);
Это то, что я обычно делаю:
File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", "extension", outputDir);
Что касается их удаления, я тоже не уверен. Поскольку я использую это в своей реализации кеша, я вручную удаляю самые старые файлы, пока размер каталога кэша не снизится до моего заданного значения.
Лучшие практики в внутренних и внешних временных файлах:
Если вы хотите кэшировать некоторые данные, а не сохранять их настойчиво, вы должны использовать
getCacheDir()
, чтобы открыть файл, представляющий внутренний каталог, в котором ваше приложение должно сохранять временные файлы кеша.Когда устройство находится на низком внутреннем пространстве памяти, Android может удалить эти кеш-файлы для восстановления пространства. Однако вы не должны полагаться на систему, чтобы очистить эти файлы для вас. Вы всегда должны хранить файлы кеша самостоятельно и оставаться в пределах разумного предела потребляемого пространства, например 1 МБ. Когда пользователь удаляет ваше приложение, эти файлы удаляются.
blockquote>Чтобы открыть файл, представляющий внешний где вы должны сохранить файлы кеша, вызовите
getExternalCacheDir()
. Если пользователь отключает ваше приложение, эти файлы будут автоматически удалены.Как упомянуто выше
ContextCompat.getExternalFilesDirs()
, вы также можете получить доступ к каталогу кэша во вторичном внешнем хранилище (если доступно), вызвавContextCompat.getExternalCacheDirs()
.Совет. Чтобы сохранить файловое пространство и поддерживать производительность вашего приложения, важно тщательно управлять своими файлами кеша и удалять те, которые больше не нужны в течение всего жизненного цикла вашего приложения.
blockquote> blockquote>
Вы можете использовать метод File.deleteOnExit()
https://developer.android.com/reference/java/io/File.html#deleteOnExit ()
Здесь указывается https://developer.android.com/reference/java/io/File.html#createTempFile (java.lang.String , java.lang.String, java.io.File)
Для временных внутренних файлов у них есть 2 варианта
1.
File file;
file = File.createTempFile(filename, null, this.getCacheDir());
2.
File file
file = new File(this.getCacheDir(), filename);
Обе опции добавляют файлы в кэш приложений и, таким образом, можно очистить, чтобы сделать пространство необходимым, но опция 1 добавит случайное число в конце имени файла, чтобы сохранить файлы уникальными. Он также добавит расширение файла, которое является .tmp
по умолчанию, но оно может быть установлено на все, используя 2-й параметр. Использование случайного числа означает, что, несмотря на указание имени файла, оно не остается таким же, как число добавляется вместе с расширением суффикса / файла (.tmp
по умолчанию), например, вы указываете свое имя файла как internal_file
и выходите как internal_file1456345.tmp
. Если вы можете указать расширение, вы не можете указать добавленный номер. Однако вы можете найти имя файла, которое оно генерирует с помощью file.getName();
, но вам нужно будет его хранить где-нибудь, чтобы вы могли использовать его, когда захотите, например, удалить или прочитать файл. Поэтому по этой причине я предпочитаю второй вариант, так как имя файла, которое вы указываете, является созданным именем файла.
Вы можете использовать dir кеша, используя context.getCacheDir () .
File temp=File.createTempFile("prefix","suffix",context.getCacheDir());