Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37

Выполнение действий по расписанию

13.08.2013, 17:05. Показов 5319. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В моей программе пользователь может добавлять различные события и устанавливать время для них. Данные, записанные пользователем, заносятся в БД. На одно время может быть записано несколько событий, в таком случае они должны будут исполнены последовательно друг за другом. Собственно, вопрос - как лучше всего сделать так, чтобы программа выполняла определенные действия по расписанию?
Пока одна из идей - завести переменные, в которые добавлять время ближайших событий из БД, затем создать новый поток и сделать в нем что-то типа будильника, который по наступлению времени ближайшего события будет его выполнять.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2013, 17:05
Ответы с готовыми решениями:

Выполнение действий приложения в ВК
Каким образом можно взаимодействовать с игрой вк, через телефон с последующим получением данных? Задача стоит в подключении приложение к...

Выполнение действий при нажатии на представление в уведомлении
Здравствуйте! Возник следующий вопрос: можно ли на нажатие в уведомлении на представление задать выполнение конкретного действия, а не...

Выполнение действий по расписанию, в определенное время
как сделать что бы прога отслеживала время и если наступило к примеру 21:00 выполнила какие-то действия? Бесконечным циклом запустить?...

3
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
14.08.2013, 12:48
Я бы запустил сервис в background'е, который каждые N минут будет просматривать базу на предмет ближайших событий. Если событие произойдёт через M минут (M<N), сервис создаёт Runnable, где описаны все необходимые действия по событию (если необходимо и старт нового потока) и передаёт это в Handler с задержкой M. Важный момент, если пользователь может создать событие, которое произойдёт ранее, чем через N минут, то сервис лучше перезапустить (стерев все Callbacks из Handler'а).
1
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
15.08.2013, 23:05  [ТС]
Спасибо за совет, не знал про сервисы, удобная штука оказывается)
Есть еще несколько проблем:
Мое приложение постоянно в отдельном потоке общается по сети с другой программой. Поток создается в главной активности. При переходе пользователем на другие активности он будет продолжать работу?
Когда наступает определенное событие, мне нужно будет оповестить сетевой поток о том, что событие произошло, и передать ему определенные данные. Как лучше это сделать?
0
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
16.08.2013, 12:14
qvazar, если вы запустили поток (неважно где) и он не является демоном (по умолчанию так оно и есть), то поток завершится либо когда он выполнит все свои действия, либо когда его прервут. Посему он будет работать и при переходе на другие активности, и даже после выхода из приложения.
Теперь что касается событий: как таковых оповестителей не предусмотрено. Но вам ничего не мешает сохранить ссылку на поток и вручную, организовав нечто подобное следующему:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private int eventType;
private Object data;
 
public void eventObject(int eventType, Object data) {
    this.eventType = eventType;
    this.data = data;
}
 
@Override
public void run() {
    
    while (true) {
    
        // общение по сети с другой программой
        
        if (eventType==someEvent) {
            toDoSomething(data);
        }
        
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            return;
        }
    
    }
 
}
оповещать поток.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2013, 12:14
Помогаю со студенческими работами здесь

Выполнение по расписанию.
Уважаемые, возникла не то, чтобы необходимость, но очень хотелось бы данное действо реализовать. В общем в определенное время, к примеру...

Выполнение действие по расписанию
Есть некая программа, которая должна выполнятся 24/7. Мне нужно выполнить некое действие(допустим очеству списка) в определённое время. Как...

Выполнение задачи по расписанию
Добрый день! Имеется скрипт который выполняет определенную функцию по расписанию. В данный момент скрипт выполняет функцию по...

Выполнение скрипта по расписанию
Добрый день. Помогите решить проблему, необходимо каждый день, вечером, запускать определённый скрипт на сайте. Как это можно реализовать,...

Выполнение кода по расписанию
Подскажите пожалуйста, как реализовать такие задержки, к примеру я хочу чтобы определенный метод вызывался спустя каждые 2 часа. Без...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru