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

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

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Отложенное одноразовое действие по цилкическому таймеру - Программирование Android

11.04.2015, 13:57. Просмотров 301. Ответов 4
Метки нет (Все метки)

Возникла такая мысль для оптимизации:

есть флай-панелька (над всеми активити).
Ее можно двигать пальцем. Надо запоминать ее позицию.
Сделал свой реактор OnMove.
В нем пишу в базу позицию.
При частом движении получаю сотню записей/sql запросов (процессор взлетает до 100%), хотя хватило бы раз-два в секунду.

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

На моей памяти мне часто нужно было подобное, но не знал как.

Прежде чем городить велосипед, хотелось бы узнать - может такое УЖЕ есть? Как хотя-бы называется такая технология?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2015, 13:57     Отложенное одноразовое действие по цилкическому таймеру
Посмотрите здесь:
Android Уведомление по таймеру
Запись в файл по таймеру Android
Выполнение действия по таймеру Android
Слайдшоу, листание картинок по таймеру Android
Android Смена значения TextView по таймеру
Неправильная периодичность вызова метода по таймеру Android
Изменять текст в TextView по таймеру каждые 5 минут Android
Действие на нажатие Android
Android Действие на кнопку POWER
Android Действие при взмахи телефона
Android Действие при нажатии на ссылку
Android Выполнить действие в заданную дату

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
11.04.2015, 15:00     Отложенное одноразовое действие по цилкическому таймеру #2
непонятно что за панелька, что за класс, что за реактор
почему надо писать по onMove, а не один раз в момент отпускания ?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.04.2015, 15:48  [ТС]     Отложенное одноразовое действие по цилкическому таймеру #3
Цитата Сообщение от Паблито Посмотреть сообщение
непонятно что за панелька, что за класс, что за реактор
Это в принципе и не важно! Панелька - моя, реактор тоже я сам написал...
Панелька - "отделеный" вьюв над всеми активити (даже когда все свернуто - полезно для индикаторов, например во время разговора по телефону). Писал сам с нуля. Обрабатываю движение пальцем для таскания панельки по экрану. Написал свой интейфейс-реактор с внейшней функцией OnMove. Она вызывается когда замечено движение хоть на пиксел. Реактора "на отпускание" нет (да и не нужно). И... надо записывать раз в секунду где в текущий момент. Возможно там-же выводить на экран строку с координатами.

Фишка в чем: пикселов ОЧЕНЬ много (разрешение экрана хорошее и в миллиметре может быть большая "погрешность")! Палец тоже может "дрожать" (глаз не замечает, а на самом деле прыгает между 100 и 110) в результате получаем кучу "необходимостей записать" новое состояние. Но нам такая точность не нужна!

Нужно что-то вроде
1) создаю глобальную переменную с классом, отвечающим за запись. В нее передаю через интерфейсы функцию записи координат.
2) посылаю в него команду - "есть изменения - запишись".
3) таймер откладывается на секунду
4) посылаю еще 100 команд. но если таймер еще не сработал - они игнорируются
5) срабатывает таймер. Вызывается внешняя обработка для записи (с текущими координатами). таймер ОСТАНАВЛИВАЕТСЯ.
6) если приходит еще одна команда "есть изменения - запишись", таймер перезапускается еще на секунду.

В результате жуткая экономия процессора! У меня панелька аж "заикается" когда тащу - начинает "прыгать" по экрану, а не ползти плавно.

Может такое УЖЕ есть? Как такое написать с нуля ЗНАЮ, займет миниму часа 3-4 с отладками и тестами, но обидно будет узнать что изобрел велосипед. Вдруг есть плохо документированная ВСТРОЕННАЯ возможность для подобного?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
11.04.2015, 17:46     Отложенное одноразовое действие по цилкическому таймеру #4
Цитата Сообщение от Tester64 Посмотреть сообщение
Реактора "на отпускание" нет (да и не нужно).
я дальше не стал читать, ты уж извини
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.04.2015, 18:27  [ТС]     Отложенное одноразовое действие по цилкическому таймеру #5
Цитата Сообщение от Паблито Посмотреть сообщение
я дальше не стал читать, ты уж извини
Не хочешь помогать - не засоряй ветку!

реактор Я писать должен! В "предке"! Я туда вписал только то чем реально пользуюсь. ВНЕШНИЙ реактор на отпускание мышки тоже могу приписать(создавать интерфейс, обрабатывать, назначать), но даже в этом случае мне он не нужен!

Мне нужно выполнять НЕ ЧАСТО обработку при самом движении, а не при отпускании!!!

И мне нужна ТЕХНОЛОГИЯ, а не частное решение!

Это лишь последний раз, когда я "споткнулся" на том что этого нет, а хотелось бы... Помню десяток случаев, когда идет килобайты почти одинакового мусора в логи, когда хотелось бы задавать "назойливость". Когда писал игрушку с бесконечным циклом и при каждом такте получал координаты машинки - не успевал поток текста читать - за секунду до 30-100 строк добавляло...
Yandex
Объявления
11.04.2015, 18:27     Отложенное одноразовое действие по цилкическому таймеру
Ответ Создать тему
Опции темы

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