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

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

Войти
Регистрация
Восстановить пароль
 
alexvinn
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 59
#1

Работа с файлом данных в внутренней памяти - Программирование Android

07.05.2014, 18:24. Просмотров 598. Ответов 7
Метки нет (Все метки)

Вопрос - если я создам ПРИЛОЖЕНИЕМ файл в внутренней памяти (например - file.data), смогу ли я потом найти его сервисом ЭТОГО приложения только по имени (без всяких путей)? Т.е. пишется ли файл ПОСТОЯННО в одно и тоже место для приложения. Вообщем, нужно в маленьком файлике хранить данные и настройки для приложения и сервиса ЭТОГО приложения, который постоянно крутится в памяти и периодически смотрит в этот файл. Может быть есть более грамотные способы реализации этой задачи ?

Всем заранее спасибо за ответы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 18:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлом данных в внутренней памяти (Программирование Android):

Не воспроизводятся звуки с внутренней памяти - Программирование Android
Эксцепшин: "prepare failed. status=0x1" Пермишины есть, картинки с той же внутренней памяти отображаются, и на телефоне звуки работают, а...

Как программно обратиться к внутренней памяти устройства - Программирование Android
Здравствуйте, подскажите пожалуйста, имеется планшет Samsung Galaxy Tab 4 с ОС Android 5.0.2. Подключаю планшет через usb к ПК с Windows 7,...

Чтение ассоциированного .txt файла с внутренней памяти по URI - Программирование Android
Добрый день. Необходимо в программе прочитать ассоциированный текстовый файл .txt из внутренней памяти по URI. Долго искал ответ на этот...

Работа с файлом - Программирование Android
Здравствуйте! У меня образовалась проблема . Ничего по этому поводу не нашел , пишу сюда . Мне нужно , что бы вместе в приложением, уже был...

Работа с файлом из папки Assets - Программирование Android
Вопрос к знающим. При старте приложения в методе onCreate() постоянно копирую файл с расширением .sh в папку приложения своего из папки...

База данных на карте памяти - Программирование Android
У меня приложение создаёт базу данных, но она создаётся в памяти телефона. Скажите как сделать чтобы она сохранялась на карте памяти?

7
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
07.05.2014, 18:28 #2
Preferences
0
alexvinn
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 59
07.05.2014, 18:58  [ТС] #3
Файл будет меняться сервисом с инета. Будет разное количество данных в полях и т.д. Возможно ???
0
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
07.05.2014, 19:57 #4
Ну, ёпрст! там-же - работа с файлами
Но как файл будет меняться сервисом, если приложение будет постоянно запрашивать из него данные?
Сервис - это другой поток. Приложение будет регулярно падать из-за конфликта блокировок.

А вообще - качаем файл и все.
Ставим в приложении таймер и каждые сколько-то там минут/секунд и прочее - проверяем, не изменился ли файл в сети. И если изменился - приостанавливаем работу приложения, скачиваем файл, восстанавливаем работу. Никаких сервисов.

Либо все данные запрашивать именно У СЕРВИСА. Т.е. и создавать файл, если надо, и скачивать, и читать его не приложением, как таковым, а именно сервисом по запросу приложения.
Но тогда изначальный вопрос опять-же отпадает, потому что абсолютно пофигу, где там сервис его создаст - искать его из приложение просто НЕЛЬЗЯ.

В общем, неправильно что-то у вас с архитектурой спланировано.
0
alexvinn
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 59
07.05.2014, 20:29  [ТС] #5
Ситуация такая, действительно плохо обрисовал, - приложение, при открытии проверяет запущен ли сервис, если нет - запускает, который раз в 6-12 часов скачивает файл (10-50 кб) на смарт и выдает нотификацию что есть обновление в статус бар. Пользователь открывает приложение через нотификацию и приложение при открытии подгружает эти данные один раз при загрузке. Т.е. вероятность блокировки минимальна, хотя и возможна. Так вот, как граммотно сделать что-бы и сервис и приложение имели доступ к одним данным ? Или преференс или отдельный файл. Преференс предпочтительно, но будет ли он иметь доступ, когда приложение закрыто ?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
07.05.2014, 21:04 #6
alexvinn,
Цитата Сообщение от alexvinn Посмотреть сообщение
Преференс предпочтительно, но будет ли он иметь доступ, когда приложение закрыто
будет. Так как у сервиса и самого приложения один и тот же контекст - Application.

Это такой же файл. Просто доступ к нему синхронизирован.
Цитата Сообщение от Patch Посмотреть сообщение
Приложение будет регулярно падать из-за конфликта блокировок.
Если руки из плеч растут, то ничего не будет. Синхронизация доступа не просто так ведь существует

P.S. да скачивайте Вы этот файл и кидайте его в кэш-директорию, в чём проблема, зачем Вам preferences.
1
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
07.05.2014, 21:06 #7
Я так и не понял, ЗАЧЕМ делать то, что заведомо может непредсказуемо падать?

Не знаю ни одного случая, когда бы такой одновременный доступ был необходим.

Ну, если так хочется сделать через жопу, но чтоб точно работало - почитайте, как решается та-же проблема при работе с SQLite. Android. Особенности работы с SQLite

Если руки из плеч растут, то ничего не будет. Синхронизация доступа не просто так ведь существует
О чем и речь. Если руки растут из плеч такой вопрос не возникает вообще.
1
alexvinn
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 59
07.05.2014, 21:18  [ТС] #8
YuraAAA, Patch - Спасибо. +1.
0
07.05.2014, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 21:18
Привет! Вот еще темы с ответами:

Найти адрес ячейки внутренней памяти данных путем деления числа 3С на 2 - Assembler
Найти адрес ячейки внутренней памяти данных путем деления числа 3С(в 16ричной системе счисления) на 2. В эту ячейку записать результат...

В ячейку внутренней памяти данных загрузить число десятичных единиц результата сложения - AVR
Возможно кто-нибудь в состоянии помочь написать данную программу? Загрузить регистр R17 числом 023h. Найти сумму R17+SREG. В ячейку ...

Запись и чтение данных из внутренней флэш памяти винчестера, или получение ID винта - C++
Доброго времени суток! Господа, есть у меня очень интересный вопрос, который очень хотелось бы решить. Суть вопроса в следующем: в каждом...

Указатели, динамическое выделение памяти, работа с файлом - C++
Программа должна предоставлять возможность нескольким пользователям работать с числовыми данными. Сведения о пользователях должны храниться...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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