Страница 1 из 1

Помогите с комбинацией. Начинающий

Добавлено: 24 янв 2014, 14:27
udalov_e
Добрый день.
Возможно это первое и последнее приложение для Android.
Натолкните на мысль как создать приложение.
Задача: есть текстовый файл с деревом семьи, необходимо раз в день выдергивать из него памятные даты. Если дата(ы) на данный день есть, формировать Notification, а по нажатию на нем Activity. Телефон не должен просыпаться и блажить, не должен жрать батарею. Просто и ненавящего сообщать владельцу когда он с ним работает. Так сообщает приложение mail.ru о новых письмах.

Вопрос:
Что использовать, в какой комбинации и с какими ключами (service, handler, AlarmManager, Timer, …)?

Евгений
P.S. Android – недоLinux. В линуксе есть прекрасное средство cron.
P.P.S Спасибо за уроки. Доходчиво.

Re: Помогите с комбинацией. Начинающий

Добавлено: 26 янв 2014, 16:46
altwin
вы можете занести в базу все памятные даты и преобразовать к примеру в timestamp(для удобства), далее просто брать timestamp текущей даты по крону, и сравнивать, если true == выводить Toast или что -то там. Лучше запустить сервис, который будет работать не зависимо от того, запущенно приложение или нет и просто выполнять задачу при наступлении события смены даты.
К примеру:
[syntax=javascript]
Calendar c = Calendar.getInstance();
int hours = c.get(Calendar.HOUR_OF_DAY);
int minutes = c.get(Calendar.MINUTE);
int seconds = c.get(Calendar.SECOND);

if(hours*3600 + minutes*60 + seconds < 1800){
// Day changed since last task
}
[/syntax]

цикл будет отрабатывать каждые 30 минут.

P.S. ну или банально сохранять timestamp в preferences и просто "вешать" AsynTask на 24 часа.
Вообще я бы советовал выбрать самое приятное внешне приложение calendar в маркете и просто выставить там даты....

А можно и по крону с сервера отправлять push на устройство....

Re: Помогите с комбинацией. Начинающий

Добавлено: 27 янв 2014, 05:50
klblk
Даты действительно правильнее будет занести в бд.
Я бы использовал AlarmManager, с повтором раз в сутки (+автозапуск при старте устройства), в ресивере получал бы из бд данные, создавал бы нужную нотификацию.
Главное Активити вероятно лучше сделать в виде календаря, вот тут темка поднималась: viewtopic.php?f=33&t=3224&hilit=%D0%BA% ... 1%80%D1%8C

Re: Помогите с комбинацией. Начинающий

Добавлено: 27 янв 2014, 09:31
udalov_e
Спасибо за ответы.

Не понравилось мне, к сожалению, писать под Андройд.
Слишком молод он еще (много версий, несовместимостей, быстро стареет, глючит).
Решил поступить проще. На хостинговом сервере запускается по крону php-скрипт с выводом на mail.
А с почты хоть на СМС, хоть вКонтакт, хоть на читалку писем для Андройд.
Если кому интересно, выгрузку делал из MyHeritage в csv.