Страница 6 из 11

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 06 май 2013, 17:17
xr0m
БД работает намного быстрее с большими массивами данных, легко расширяется, плюс все данные типизированны. БД так же имеет проверку на целостность данных.
С Preference проще работать, важный данные лучше в нем не хранить.

Кстати, подключение к БД по времени дольше, чем открытые файла на чтение?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 06 май 2013, 20:21
Mikhail_dev
Я не пойму, зачем использовать передачу данных между активностями, если есть Bundle? Запись настроек - это операция записи на носитель информации, она слишком дорогая в такой ситуации.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 май 2013, 01:12
xr0m
Хм.. верно, не совсем точно выразился. Имел ввиду про PreferenceActivity, который по умолчанию сохраняет настройки, при изменении.

Подредактирую.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 05 июл 2013, 18:23
WebPlayer
Здравтсвуйте.

Preferences используются для хранения настроек.
И если пользователь удалит прилжение, то настройки тоже удалятся.

Пример:
Есть приложение, которое авторизуется на сервере по token (случайно сгенерированная строка при первом запуске приложения)
Пользователю при первом запуске дается определенное количество бесплантых монеток(вся информация хранится на сервере), которые он может тратить. Как потратил нужно покупать.
Но пользователь может переустановить приложение(token сохраненный в Preferences при этом удаляется) и получить снова бесплатные монетки.

Вопрос: куда сохранять token что бы он оставатся между переустановками приложения?
Есть-ли такое место в android?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 05 июл 2013, 18:38
anber
WebPlayer писал(а):Здравтсвуйте.

Preferences используются для хранения настроек.
И если пользователь удалит прилжение, то настройки тоже удалятся.

Пример:
Есть приложение, которое авторизуется на сервере по token (случайно сгенерированная строка при первом запуске приложения)
Пользователю при первом запуске дается определенное количество бесплантых монеток(вся информация хранится на сервере), которые он может тратить. Как потратил нужно покупать.
Но пользователь может переустановить приложение(token сохраненный в Preferences при этом удаляется) и получить снова бесплатные монетки.

Вопрос: куда сохранять token что бы он оставатся между переустановками приложения?
Есть-ли такое место в android?
При обновлении данные не удалятся. Если пользователь удалит приложение значит он не хочет чтобы от этого приложения оставались огрызки. Правильно решение - хранить данные между установками на сервере.
Вообще можно сохранить данные на карте памяти, там они не удаляться, но специально отведенного места под это нет, а гадить на карту памяти нехорошо. В принципе можно попросить пользователя указать путь где на карте памяти хранить token. Смотри http://developer.android.com/training/b ... nalStorage
Более не менее из публичных директорий для твоих целей подходит DIRECTORY_DOWNLOADS.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 06 июл 2013, 19:29
Mikhail_dev
Абсолютно верное говорит anber.
Пользователю при первом запуске дается определенное количество бесплантых монеток(вся информация хранится на сервере), которые он может тратить. Как потратил нужно покупать.
В чем проблема? Давайте монеты ему только тогда, когда информация будет получена с сервера о нём.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 июл 2013, 11:46
WebPlayer
anber писал(а): При обновлении данные не удалятся. Если пользователь удалит приложение значит он не хочет чтобы от этого приложения оставались огрызки.
Я хочу. Необходимо не давать второй раз бесплатные монеты.
anber писал(а): Правильно решение - хранить данные между установками на сервере.
Да, верно, но чтобы получить эти данные нужен идентификатор пользователя, который хранится на телефоне (token, например, который должен быть одним и тем же между перестановками приложения. Что бы однозначно определить одного и того же пользователя)
anber писал(а): Вообще можно сохранить данные на карте памяти, там они не удаляться, но специально отведенного места под это нет, а гадить на карту памяти нехорошо. В принципе можно попросить пользователя указать путь где на карте памяти хранить token. Смотри http://developer.android.com/training/b ... nalStorage
Более не менее из публичных директорий для твоих целей подходит DIRECTORY_DOWNLOADS.
С карты памяти можно все очень легко удалить.
no-- писал(а): В чем проблема? Давайте монеты ему только тогда, когда информация будет получена с сервера о нём.
Собственно в этом и проблема: однозначно получить инфу пользователя с сервера по токену, который должен хранится на устройстве и не удалятся при удалении приложения. Иначе у пользователя будет новая регистрация с новыми бесплантными монетами.
Количество монет пользователя хранится на сервере и все списания и начисления монет тоже на сервере.

Можно конечно просить пользователей регистрироваться при запуске прилежения, но это лишний шаг, который многие не захотят делать.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 июл 2013, 12:10
=bor=
WebPlayer писал(а):Собственно в этом и проблема: однозначно получить инфу пользователя с сервера по токену, который должен хранится на устройстве и не удалятся при удалении приложения. Иначе у пользователя будет новая регистрация с новыми бесплантными монетами.
Вы себе сами сужаете поле деятельности. Почему обязательно так это организовывать? Вам ведь главное однозначно идентифицировать пользователя. Сгенерите для него ID, и потом даже если он переустановит ваше приложение, ID будет тот же и вы его опознаете.
WebPlayer писал(а):Можно конечно просить пользователей регистрироваться при запуске прилежения, но это лишний шаг, который многие не захотят делать.
Совсем не лишнее, кмк, если за регистрацию они получат какую-то плюшку. ;)

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 июл 2013, 15:10
anber
WebPlayer писал(а):
anber писал(а): При обновлении данные не удалятся. Если пользователь удалит приложение значит он не хочет чтобы от этого приложения оставались огрызки.
Я хочу. Необходимо не давать второй раз бесплатные монеты.
anber писал(а): Правильно решение - хранить данные между установками на сервере.
Да, верно, но чтобы получить эти данные нужен идентификатор пользователя, который хранится на телефоне (token, например, который должен быть одним и тем же между перестановками приложения. Что бы однозначно определить одного и того же пользователя)
anber писал(а): Вообще можно сохранить данные на карте памяти, там они не удаляться, но специально отведенного места под это нет, а гадить на карту памяти нехорошо. В принципе можно попросить пользователя указать путь где на карте памяти хранить token. Смотри http://developer.android.com/training/b ... nalStorage
Более не менее из публичных директорий для твоих целей подходит DIRECTORY_DOWNLOADS.
С карты памяти можно все очень легко удалить.
no-- писал(а): В чем проблема? Давайте монеты ему только тогда, когда информация будет получена с сервера о нём.
Собственно в этом и проблема: однозначно получить инфу пользователя с сервера по токену, который должен хранится на устройстве и не удалятся при удалении приложения. Иначе у пользователя будет новая регистрация с новыми бесплантными монетами.
Количество монет пользователя хранится на сервере и все списания и начисления монет тоже на сервере.

Можно конечно просить пользователей регистрироваться при запуске прилежения, но это лишний шаг, который многие не захотят делать.
Можно использовать Facebook/VK/twitter аккаунт

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 09 июл 2013, 13:42
brulik67
у меня если стоит на девайсе режим энергосбережения, то когда экран тухнет, объекты из памяти удаляются я так понял, и данные в приложении приходится набивать заново. Можно как-то сделать чтоб конкретный объект не умирал при выключении экрана??

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 09 июл 2013, 13:51
anber
brulik67 писал(а):у меня если стоит на девайсе режим энергосбережения, то когда экран тухнет, объекты из памяти удаляются я так понял, и данные в приложении приходится набивать заново. Можно как-то сделать чтоб конкретный объект не умирал при выключении экрана??
Обычно когда экран тухнет объекты из памяти не удалятся. Если приложение остановить(зайти в список приложений и нажать остановить), то да объекты которые не сохранены в Preferences удалятся. Более того они обычно не удаляются при нажатии кнопки home и последующем разворачивании.
То что вам приходится набивать данные заново это значит не то что объекты удаляются, а то что они неправильно используются.
К примеру при создании Activity выполняется метод onCreate, при сворачивании/тушении экрана - onPause, и обратно при восстановлении - onResume.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 10 июл 2013, 14:09
brulik67
не знаю где спросить, спрошу тут. Версия кода и программы указывается в манифесте я так понял, а как мне получить эти данные из кода?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 10 июл 2013, 14:19
anber
brulik67 писал(а):не знаю где спросить, спрошу тут. Версия кода и программы указывается в манифесте я так понял, а как мне получить эти данные из кода?

Код: Выделить всё

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
pInfo.versionName;
pInfo.versionCode;
ЗЫ, первая ссылка http://lmgtfy.com/?q=android+get+applic ... m+manifest

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 23 авг 2013, 14:51
tytryn
Здравствуйте. Я организовал скачивание файла с интернета на sd карту.
Подскажите как можно не скачивая файл проверить его дату, размер и тд.
Хочу для приложения сделать уведомления, что-то типа есть новый файл можно загружать или обновить.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 27 авг 2013, 14:57
anber
tytryn писал(а):Здравствуйте. Я организовал скачивание файла с интернета на sd карту.
Подскажите как можно не скачивая файл проверить его дату, размер и тд.
Хочу для приложения сделать уведомления, что-то типа есть новый файл можно загружать или обновить.
что за файл, откуда скачивать?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 15 окт 2013, 14:24
Isaev
Preferences-данные сохраняются в файлы и вы можете посмотреть их. Для этого в Eclipse откройте меню Window > Show View > Other и выберите Android > File Explorer. Отобразилась файловая система эмулятора.
а в IDEA есть что-то похожее, может кто подсказать?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 15 окт 2013, 15:24
trew
Isaev писал(а):
Preferences-данные сохраняются в файлы и вы можете посмотреть их. Для этого в Eclipse откройте меню Window > Show View > Other и выберите Android > File Explorer. Отобразилась файловая система эмулятора.
а в IDEA есть что-то похожее, может кто подсказать?
IntelliJ не имеет File Explorer, но есть варианты:
http://stackoverflow.com/questions/4866 ... n-intellij

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 16 окт 2013, 09:17
Isaev
trew, благодарю! Там в DDMS есть как раз вкладочка File Explorer. В общем можно сказать, что он там есть, функционала вполне хватает)

Ещё вопросик:
Константа MODE_PRIVATE используется для настройки доступа и означает, что после сохранения, данные будут видны только этому приложению
Почему при этом режиме мы всё равно видим файл в File Explorer, если он должен быть виден "только этому приложению"?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 16 окт 2013, 11:43
Foenix
может,у тебя на телефоне рут? тогда все будешь видеть

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 16 окт 2013, 12:13
Isaev
Foenix, ну по статье его видно у всех, не только у меня
я почему-то думал с такими правими он ни откуда виден не будет, только приложение будет иметь к нему доступ