У меня есть пользовательский контент-провайдер, и мне нужно вставить одну запись в то время, когда пользователь нажимает на какую-то кнопку, и это не так уж часто. Мне было интересно, должен ли я делать эту вставку в фоновом потоке (AsynchTask и т. Д.), Или мне нужно просто вставить его в поток графического интерфейса? Сразу после вставки мне нужно обновить GUI. Если я должен сделать это в фоновом режиме, то какой лучший подход ... Думаю, asynctask
- лучший выбор. Заранее спасибоВставьте одну запись в sqlite android с помощью contentprovider
ответ
Советуем не обращаться к вашему провайдеру по основной теме. Используйте CursorLoader для запросов. Для модификации используйте объекты ContentProviderOperation и ContentResolver.applyBatch(). Эти классы обрабатывают все фоновые работы для вас.
ASyncTask - это гораздо более универсальный класс.
Некоторые примеры использования ContentProviderOperation и ContentResolver.applyBatch() были бы замечательными – eddy
Я. вы правы. Использование Async Task для управления операциями БД - хороший подход. Но решение выбрать конкретный подход зависит от количества данных, которые вы запрашиваете или вставляете из/в базу данных.
- 1. Android конвертировать sqlite одну запись в csv
- 2. Обновление SQLite DB в Android с помощью ContentProvider
- 3. Получить одну запись из SQLite Android
- 4. Android SQLite с ContentProvider и BaaS
- 5. Android Sqlite с ContentProvider или SQLiteOpenHelper
- 6. Вставьте объект с Android SQLite
- 7. Вставьте одну запись таблицы в другую
- 8. Хорошая практика SQLite & ContentProvider
- 9. sqlite возвращает только одну запись
- 10. Android SQLite query ContentProvider Синтаксис Case Statement
- 11. Лучшие практики для SQLite DB и ContentProvider
- 12. Android удалить запись SQLite
- 13. Android: запрос ContentProvider в AsyncTask задерживается, когда происходят некоторые другие операции ContentProvider/sqlite
- 14. Вставьте значения в существующую запись. sqlite с использованием подготовленного оператора
- 15. База данных SQLite хранит только последнюю запись, отправленную через ContentProvider
- 16. Вставьте запись Muti с Android на Php?
- 17. Вставьте TimeStamp в SQLite для Android
- 18. Вставьте данные Gson в Android Sqlite
- 19. Android: AsyncQueryHandler и ContentProvider
- 20. Как связать базу данных Sqlite с помощью ContentProvider и LoaderManager
- 21. Вставьте одну запись из текстового файла в 3 таблицы
- 22. Android ContentProvider с файлами JSON
- 23. Как обновить запись в SQLite с Android?
- 24. RxJava с операциями SQlite и ContentProvider
- 25. В Android ContentProvider, поддерживаемом SQLite, как мне реализовать семантику insertOrUpdate?
- 26. android ContentProvider удалить неправильную строку в ListView с помощью SimpleCursorAdapter
- 27. Android ContentProvider Проблема с курсором
- 28. Как использовать ContentProvider с DiskLruCache в Android
- 29. Обновить списокView на основе SQLite, поддерживаемого ContentProvider
- 30. JOOQ - сопоставить одну запись с помощью RecordMapper
Единственная причина, по которой я не предлагаю использовать asynctasks, заключается в том, что она добавляет много дополнительных проблем. Например, ваша деятельность не должна заканчиваться до тех пор, пока все асинхронные задачи не будут завершены. Кроме того, вы должны подумать о том, что произойдет, если пользователь быстро нажимает кнопку. Поставщики контента не являются потокобезопасными, поэтому вам придется выполнять синхронизацию самостоятельно. Лучше всего использовать асинтез, но решать вам, действительно ли это необходимо. – Samuel