Политика хранения данных Android Jetpack WorkManager

Я хотел бы использовать новый WorkManager для замены служебной реализации отправителя телефонной телеметрии (жалоба на Android O). Прямо сейчас это, по сути, связанная служба, которая пытается отправлять телеметрию в реальном времени, но в случае сбоя сети она сохранит запись в БД, которая позже будет воспроизведена на сервере при возобновлении работы сети. В значительной степени определение того, что WorkManager может выполнять с помощью ограничений.

У меня проблема с безопасностью. Моя база данных зашифрована, и она также полностью стирается, когда пользователь выходит из системы или просит стереть свои данные. WorkManager поддерживается Room db и хранит все данные полезной нагрузки в открытом виде. Что еще хуже, похоже, они не предоставляют возможность удалять эти записи по вашему желанию. Вместо этого они предлагают отмену, которая буквально просто устанавливает статус столбца на ОТМЕНЕН. Я не могу найти документацию или код, который объяснял бы способ преодоления этого. У кого-нибудь была возможность много исследовать библиотеку? Может я что-то упускаю.

Спасибо


person Andrew G    schedule 15.05.2018    source источник
comment
Правильно. Может я запуталась. Класс WorkSpec в Диспетчере работ определяет уровень комнаты, на котором сохраняются задачи, поставленные в очередь. Это потребуется для гарантированного выполнения позже ОС. Вы говорите, что есть API для внедрения в рабочий менеджер моего собственного поставщика баз данных?   -  person Andrew G    schedule 16.05.2018


Ответы (1)


Согласно Work Manager I / O Talk, WorkManager не предназначен для использования в качестве хранилища данных. Вы должны продолжать хранить свои данные в своей базе данных.

person ianhanniballake    schedule 15.05.2018
comment
Так заключается ли идея в том, что вместо того, чтобы раздавать данные, передаваемые на вход, вы передаете идентификатор в свое собственное индексированное хранилище? Вам придется читать db даже в счастливом пути, верно? - person Andrew G; 16.05.2018
comment
Это правильно - вы не можете передать Parcelables в класс Data WorkManager, так что вы захотите использовать этот подход в любом случае. - person ianhanniballake; 16.05.2018
comment
Ах я вижу. Я думаю, что использование Yigit's Android-Priority-Jobqueue так долго сбивало меня с толку. Спасибо! - person Andrew G; 16.05.2018
comment
Быстрый, пожалуйста, сохраняется ли проиндексированная запись в хранилище, переданная диспетчеру работы, даже после перезагрузки? - person Paul Okeke; 01.08.2018
comment
@PaulOkeke - WorkManager продолжает работу после перезагрузки, да. - person ianhanniballake; 12.08.2018