Flutter, path_provider и состояния приложения: очистка кэшированного файла во временном каталоге, нужны ли для этого спе ⇐ Android
Flutter, path_provider и состояния приложения: очистка кэшированного файла во временном каталоге, нужны ли для этого спе
Я использую пакет flutter path_provider для кэширования некоторых файлов JSON во временном каталоге. Я хочу, чтобы эти файлы удалялись, когда я закрываю приложение, используя эту часть кода:
@override void DidChangeAppLifecycleState (состояние AppLifecycleState) { if (state == AppLifecycleState.paused && !cleaningInProgress) { // Переход из состояния паузы в неактивность, инициируем очистку кэша очисткаInProgress = правда; } else if (state == AppLifecycleState.inactive && cleanInProgress) { // Приложение теперь неактивно, выполните очистку кеша _deleteCachedJsonfiles(); очисткаInProgress = ложь; } } Вот код для _deleteCachedJsonfiles():
Будущее _deleteCachedJsonfiles() async { пытаться { Каталог tempDir = ждут getTemporaryDirectory(); for (файл var в tempDir.listSync()) { если (file.path.endsWith('.json')) { файл.удалить(); } } } поймать (е) { print('Ошибка при очистке кеша: $e'); } очисткаInProgress = ложь; } На встроенной виртуальной машине Intelliji JetBrains я вижу, что файлы JSON эффективно удаляются, но на реальном телефоне это выглядит по-другому. Нужна ли мне специальная авторизация в AndroidManifest.xml, например:
Я использую пакет flutter path_provider для кэширования некоторых файлов JSON во временном каталоге. Я хочу, чтобы эти файлы удалялись, когда я закрываю приложение, используя эту часть кода:
@override void DidChangeAppLifecycleState (состояние AppLifecycleState) { if (state == AppLifecycleState.paused && !cleaningInProgress) { // Переход из состояния паузы в неактивность, инициируем очистку кэша очисткаInProgress = правда; } else if (state == AppLifecycleState.inactive && cleanInProgress) { // Приложение теперь неактивно, выполните очистку кеша _deleteCachedJsonfiles(); очисткаInProgress = ложь; } } Вот код для _deleteCachedJsonfiles():
Будущее _deleteCachedJsonfiles() async { пытаться { Каталог tempDir = ждут getTemporaryDirectory(); for (файл var в tempDir.listSync()) { если (file.path.endsWith('.json')) { файл.удалить(); } } } поймать (е) { print('Ошибка при очистке кеша: $e'); } очисткаInProgress = ложь; } На встроенной виртуальной машине Intelliji JetBrains я вижу, что файлы JSON эффективно удаляются, но на реальном телефоне это выглядит по-другому. Нужна ли мне специальная авторизация в AndroidManifest.xml, например:
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение