Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
#1

Хранение Message[] - Программирование Android

06.09.2013, 14:13. Просмотров 528. Ответов 8
Метки нет (Все метки)

Приветствую.
Собственно, нужно как-то хранить email письма. Они у меня в формате Message[].

Какой способ для этого самый подходящий? SharedPreferences, как я понял, не могут хранить такие данные. Можно ли этот массив сообщений записать в файл какой?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Хранение Message[] (Программирование Android):

Вывод message - Программирование Android
Message msg = h.obtainMessage(); Bundle b = new Bundle(); b.putString("KEY1", ParseQuery); ...

Installation failed with message -26 - Программирование Android
При запуске приложения появляется вот такое сообщение Installation failed with message -26: Package app.kr.ru.kr new target SDK 22...

Как менять message AlertDialog в зависимости от progress SeekBar? - Программирование Android
Доброго времени суток) В моём приложении при нажатии на TextVeiw появляется AlertDialog, в который я всунул SeekBar. Нужно, чтобы message...

Java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE - Программирование Android
Что означает ошибка java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE Выходит касательно кода,...

Хранение настроек - Программирование Android
При запуске приложения запускается Activity с 2 Spinner, и в них нужно выбрать значения. После нажатия кнопки эти значения нужно сохранить...

Хранение переменных - Программирование Android
Доброго времени суток, уважаемые. Имеется около сотни переменных (не больше) которые будут изменяться раз 10-20 в день. Многие из них...

8
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
06.09.2013, 14:45 #2
SQLite не подходит?
0
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
06.09.2013, 14:53  [ТС] #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
SQLite не подходит?
А как туда массив сообщений засунуть?

Пока есть идея создать свой класс сообщения и после загрузки конвертировать полученные сообщения из стандартного Message в свой формат, выкидывая лишние данные. Свой формат уже загрузить в SQLite или SP.

Для начала бы хотелось узнать, может есть способ попроще хранить Message[]
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.09.2013, 23:22 #4
Java
1
2
3
4
            Parcel parcel = Parcel.obtain();
            parcel.writeArray(messages);
            byte[] byteArray = parcel.createByteArray();
            writeToDB(byteArray);
Java
1
2
3
4
            byteArray = readFromDB();
            Parcel parcel = Parcel.obtain();
            parcel.writeByteArray(byteArray);
            Message[] messages = (Message[])parcel.readArray(Message.class.getClassLoader());
набросал на коленке, не уверен что работает, но в какую сторону копать, думаю, понятно
0
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
11.09.2013, 14:29  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
Java
1
2
3
4
            Parcel parcel = Parcel.obtain();
            parcel.writeArray(messages);
            byte[] byteArray = parcel.createByteArray();
            writeToDB(byteArray);
Java
1
2
3
4
            byteArray = readFromDB();
            Parcel parcel = Parcel.obtain();
            parcel.writeByteArray(byteArray);
            Message[] messages = (Message[])parcel.readArray(Message.class.getClassLoader());
набросал на коленке, не уверен что работает, но в какую сторону копать, думаю, понятно
Попробовал провернуть такой трюк в OnStop. Получил такую фигню:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
09-11 14:25:42.225: E/AndroidRuntime(19173): java.lang.RuntimeException: Unable to stop activity {ru.malahovsky.yourmail/ru.malahovsky.yourmail.YandexMessagesListActivity}: java.lang.RuntimeException: Parcel: unable to marshal value com.sun.mail.pop3.POP3Message@41aee6a0
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3301)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3355)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread.access$1300(ActivityThread.java:140)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1290)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.os.Handler.dispatchMessage(Handler.java:99)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.os.Looper.loop(Looper.java:137)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread.main(ActivityThread.java:4921)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at java.lang.reflect.Method.invokeNative(Native Method)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at java.lang.reflect.Method.invoke(Method.java:511)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at dalvik.system.NativeStart.main(Native Method)
09-11 14:25:42.225: E/AndroidRuntime(19173): Caused by: java.lang.RuntimeException: Parcel: unable to marshal value com.sun.mail.pop3.POP3Message@41aee6a0
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.os.Parcel.writeValue(Parcel.java:1235)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.os.Parcel.writeArray(Parcel.java:641)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at ru.malahovsky.yourmail.YandexMessagesListActivity.saveMessages(YandexMessagesListActivity.java:93)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at ru.malahovsky.yourmail.YandexMessagesListActivity.onStop(YandexMessagesListActivity.java:145)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1219)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.Activity.performStop(Activity.java:5344)
09-11 14:25:42.225: E/AndroidRuntime(19173):    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3296)
09-11 14:25:42.225: E/AndroidRuntime(19173):    ... 11 more
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.09.2013, 22:59 #6
вы используете javax.mail.Message что ли? он не Parcelable, я думал речь идет об андроидевском android.os.Message
0
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
12.09.2013, 09:38  [ТС] #7
Цитата Сообщение от V0v1k Посмотреть сообщение
вы используете javax.mail.Message что ли? он не Parcelable, я думал речь идет об андроидевском android.os.Message
Да, именно так. Это же email письма...
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.09.2013, 00:29 #8
ну, тогда поштучно записывать нужные поля в БД.
1
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
13.09.2013, 11:47  [ТС] #9
Цитата Сообщение от V0v1k Посмотреть сообщение
ну, тогда поштучно записывать нужные поля в БД.
Эх, а я надеялся на более простой способ. Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 11:47
Привет! Вот еще темы с ответами:

Хранение данных - Программирование Android
Ребят посоветуйте способы хранения данных приложения,и плюсы каждого из них

Хранение ресурсов - Программирование Android
Здравствуйте! Я недавно начала писать приложение под Android. Опыта у меня немного и я столкнулась с проблемой. Допустим, я хочу...

Хранение файлов приложения - Программирование Android
У меня есть 2 файла, 1 текстовый, второй картинка. Я хочу что бы они при установке приложения хранились в самом приложении(в файлах...

Хранение данных в onRetainNonConfigurationInstance() - Программирование Android
Всем привет! Хочу сделать, чтобы при пересоздании активити (после блокировки\разблокировки девайса) все данные сохранялись. Для этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
13.09.2013, 11:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru