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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
qvazar
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
#1

Выполнение действий по расписанию - Программирование Android

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

В моей программе пользователь может добавлять различные события и устанавливать время для них. Данные, записанные пользователем, заносятся в БД. На одно время может быть записано несколько событий, в таком случае они должны будут исполнены последовательно друг за другом. Собственно, вопрос - как лучше всего сделать так, чтобы программа выполняла определенные действия по расписанию?
Пока одна из идей - завести переменные, в которые добавлять время ближайших событий из БД, затем создать новый поток и сделать в нем что-то типа будильника, который по наступлению времени ближайшего события будет его выполнять.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2013, 17:05     Выполнение действий по расписанию
Посмотрите здесь:

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

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

Получение данных по расписанию - Программирование Android
Немного не могу решить, как это реализовать. В общем, при первом запуске программы (а при последующих проверять) она должна установить...

Запускать будильник по расписанию (Андроид 2.3.4) - Программирование Android
Мне надоело устанавливать будильник на мобиле(Fly Blackrird) в ручную Я работаю сутки через трое Какие доки стоит почитать для создания...

Выполнений действий в фоне - Программирование Android
Всем привет! Есть работающий исходник: public void PrtSc() { if...

Блокировка действий пользователя - Программирование Android
В определений момент использования программы нужно забрать управления(такое как реагирования на клавиши меню, назад, блокировки телефона, и...

Панель контекстных действий без множественного выделения - Программирование Android
Возможно ли создать панель контекстных действий для ListView без множественного выделения? В примерах панель контекстных действий создаётся...

(API Hook) Перехват действий в системной галерее - Программирование Android
Здравствуйте форумчане!) Назрела такая вот задача: необходимо перехватить момент открытия фото или видео в галерее можно и не...

Остановить выполнение во фрагменте - Программирование Android
Есть для примера код который расположен в фрагменте. как остановить программу // Если номер введен неверно ...

Выполнение задач в бэкграунде - Программирование Android
Доброго времени суток, нужна помощь с реализацией. Есть базе начальное время и конечное время, в этот промежуток на устройстве должен...

Выполнение сценария на Android - Программирование Android
Приветствую, товарищи! Возник вопрос - возможно ли сделать .apk, который сведет к минимуму действия человека? В рамках одного цикла...

Выполнение действия по таймеру - Программирование Android
Здравствуйте. Подскажет пожалуйста, каким образом можно решить следующую задачу: Необходимо при при выполнении некоего условия запускать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
14.08.2013, 12:48     Выполнение действий по расписанию #2
Я бы запустил сервис в background'е, который каждые N минут будет просматривать базу на предмет ближайших событий. Если событие произойдёт через M минут (M<N), сервис создаёт Runnable, где описаны все необходимые действия по событию (если необходимо и старт нового потока) и передаёт это в Handler с задержкой M. Важный момент, если пользователь может создать событие, которое произойдёт ранее, чем через N минут, то сервис лучше перезапустить (стерев все Callbacks из Handler'а).
qvazar
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
15.08.2013, 23:05  [ТС]     Выполнение действий по расписанию #3
Спасибо за совет, не знал про сервисы, удобная штука оказывается)
Есть еще несколько проблем:
Мое приложение постоянно в отдельном потоке общается по сети с другой программой. Поток создается в главной активности. При переходе пользователем на другие активности он будет продолжать работу?
Когда наступает определенное событие, мне нужно будет оповестить сетевой поток о том, что событие произошло, и передать ему определенные данные. Как лучше это сделать?
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
16.08.2013, 12:14     Выполнение действий по расписанию #4
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;
        }
    
    }
 
}
оповещать поток.
Yandex
Объявления
16.08.2013, 12:14     Выполнение действий по расписанию
Ответ Создать тему
Опции темы

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