У меня есть android appand Я хочу сохранить намерение Android в базе данных как поле blob. Я знаю основы хранения и извлечения данных TEXT, INTEGER и т. Д., Типы стандартов в SQLite, поскольку мое приложение уже делает все это. Я не знаком с хранением и извлечением блоб. Я предполагаю, что blob - лучший способ, в отличие от хранения в виде строки и разбора и намерения. Возможно, это неверное предположение. Тонкие намерения могут быть именем пакета, URI, могут иметь дополнительные функции и т. Д. Вот почему я хотел бы хранить/извлекать все намерения, а не просто хранить детали.Хранение в Intent в базе данных SQLite с android
ответ
Используйте Parcelable интерфейс с Intent:
Parcel parcel;
myIntent.writeToParcel(parcel);
ContentValues values = new ContentValues();
values.put(MyField, parcel.createByteArray());
getContentResolver().insert(MyBaseColumn.MyTable.CONTENT_URI, values);
Обратный процесс, чтобы получить его.
Если вы предпочитаете текст, вы можете рассмотреть возможность использования json.
Вы можете просто хранить намерение в струнном образом:
String intentDescription = intent.toUri(0);
//Save the intent string into your database
Позже вы можете восстановить Намерение:
String intentDescription = cursor.getString(intentIndex);
Intent intent = Intent.parseUri(intentDescription, 0);
К сожалению, это не хранит флаги и все дополнительные функции. – JacksOnF1re
@ JacksOnF1re это неправда. Пожалуйста, прочитайте [docs] (http://developer.android.com/reference/android/content/Intent.html#toUri (int)). «URI содержит данные Intent в качестве базового URI с дополнительным фрагментом, описывающим действие, категории, тип, флаги, пакет, компонент и дополнительные функции». – mattgmg1990
Выполнение Intent.parseUri() не очень хорошо (он вызывает String.startsWith слишком много раз). – sandrstar
- 1. Хранение данных в базе данных SQLite android
- 2. Хранение снимка камеры в базе данных SQLite
- 3. Хранение скребковых данных в базе данных sqlite
- 4. Хранение дня календаря в базе данных sqlite
- 5. Хранение массива массивов в базе данных SQLite
- 6. Хранение * .patt-файла в базе данных Sqlite
- 7. Хранение 3D-моделей в Android-базе данных SQLite
- 8. Хранение времени в базе данных
- 9. Хранение данных в SQLite
- 10. Хранение времени SQlite Android
- 11. Хранение строк Unicode в базе данных SQLite с использованием PeeWee
- 12. Хранение SQLite в базе данных памяти с ADM-ZIP (Node.js)
- 13. Хранение даты и времени в SQLite Android
- 14. Android: сохранение данных в базе данных SQLite
- 15. Хранение предложений в базе данных
- 16. Хранение данных с мобильных телефонов Android в базе данных
- 17. Хранение данных в удаленной базе данных с помощью Android
- 18. onUpgrade в базе данных sqlite в android
- 19. Хранение данных JSON в локальной базе данных в android
- 20. Android - Сохранить местоположение в базе данных SQLite
- 21. Хранение словаря/кортежа в базе данных Sqlite для Python
- 22. C#, Хранение HTML-страниц в базе данных SQLite
- 23. оптимизировать вставку в базе данных sqlite android
- 24. Хранение файлов в базе данных
- 25. Два языка в базе данных sqlite - Android
- 26. Хранение пакетов данных в базе данных
- 27. Хранение «голосов» в базе данных
- 28. Хранение объекта в базе данных
- 29. Диапазон хранение в базе данных
- 30. Хранение изображений в базе данных
Это очень плохая идея. Из документов Android [link] (http://developer.android.com/reference/android/os/Parcel.html): «Посылка не является механизмом сериализации общего назначения. Этот класс (и соответствующий Parcelable API для размещения произвольные объекты в парцеллу) спроектирован как высокопроизводительный транспорт IPC. Таким образом, * не * целесообразно поместить любые данные Parcel в постоянное хранилище: изменения в базовой реализации любой из данных в Посылке могут отображать более старые данные не читаются ». – Anthony