У поставщика контента для Android есть методы для обычных подозреваемых {insert, delete, query, update}, но если я хочу отправлять управляющие сообщения, нет очевидного механизма. Предположим, что одна из таблиц, которым управляют, должна быть сброшена, очищена и перезагружена. Как это можно сделать? У меня есть несколько подходов, каждый из которых кажется немного хакерским.(best) Способы доставки управляющих сообщений произвольному поставщику контента
1) создать работу (или службу/приемник) для задания. Активность делает массовое удаление и вставку. Это кажется наименее хакерским, но когда поставщик контента начинает работу с базой данных, он создает таблицы и инициализирует их.
Кажется неэффективным дублировать код инициализации в помощнике базы данных поставщика контента и в отдельном действии.
2) угон поставщика контента api. Столбец может быть создан, если метод вставки (или update/query/delete) будет ссылаться на недоступные для него методы.
3) использовать множественное наследование, чтобы сделать контент-провайдер также службой (или активностью). Это, вероятно, ближе всего к тому, что я хочу, но я не знаю, как это сделать. Это чувствует себя опасно, особенно если это была деятельность.
4) имеют пару контент-провайдера Похож на (3), но, надеюсь, без бородавок. У службы будет помощь для выполнения всех видов управления. Например, таблицы поиска загрузки, таблицы очистки, чистые истекшие кортежи, ... Если это было сделано, служба, как будет запущена служба? поставщиком контента?
Да, пользователь BroadcastReceiver работает очень хорошо. – phreed
@preed: Сладкий! Я знаю, что «Контекст», переданный «BroadcastReceiver», несколько ограничен в том, что он может сделать, поэтому я был обеспокоен тем, что тот, который был предоставлен «ContentProvider», может иметь схожие проблемы. Рад, что это сработало для вас! – CommonsWare