- Русские Блоги
- Несколько способов реализовать таймеры в Android
- предисловие
- Механизм сообщений Android
- текст
- AlarmManager
- Резюме преимуществ
- Применимая сцена
- Handler
- Резюме преимуществ
- Применимая сцена
- Timer
- Резюме преимуществ
- Применимая сцена
- Thread
- Резюме преимуществ
- Применимая сцена
- 1. Используйте метод Handle и thread’s sleep (long)
- 2. Использование метода postDelayed обработчика (Runnable, long)
- 3. Способ совмещения Handler с таймером и TimerTask
- Используйте AlarmManger для достижения долгосрочных задач точного времени
- окончание
- 7 лучших приложений таймера для Android
- 1. Визуальный таймер
- 2. Goodtime
- 3. Таймер Плюс
- 4. Интервальный таймер
- 5. Таймер
- 6. Фокус мозга
- 7. Engross
- Далее попробуйте новое приложение будильника
Русские Блоги
Несколько способов реализовать таймеры в Android
предисловие
В эти дни я просматриваю официальную документацию по разработке под Android, и есть много предложений по разработке, о которых стоит подумать, и друзья, у которых есть время, могут это проверить. Очень удобно).
Один из курсов упоминал AlarmManager. Этот класс был просто для того, чтобы понять, что это менеджер будильника. Если вы хотите сделать какое-то программное обеспечение, которое лучше, чем напоминания и будильники, вам нужно его использовать. Официальный пример используется для реализации таймера. Я внезапно почувствовал, что это очень волшебная вещь. Я собрал некоторую информацию и записал несколько известных мне способов реализации таймера, чтобы углубить свою память и поделиться ею со всеми.
Механизм сообщений Android
Давайте сначала разберемся с механизмом обработки сообщений Android
То есть механизм работы Handlerd. Для работы обработчика требуется поддержка базовых MessageQueue и Looper. MessageQueue (очередь сообщений), которая хранит некоторые сообщения внутри и обеспечивает внешние операции вставки и удаления в виде очереди (фактически хранилище единого списка). Looper (цикл сообщений), взаимодействуйте с MessageQueue для достижения непрерывного постановки в очередь и удаления из очереди сообщений.
Обработчики могут легко переключать задачи в другие потоки для выполнения, чтобы уменьшить нагрузку на основной поток, поэтому обработчики часто используются для обновлений пользовательского интерфейса. Вот только краткий обзор. Соответствующим блоггерам пока настоятельно не рекомендуется ссылаться на следующие блоги:
Android-механизм асинхронной обработки сообщений
Android AsyncTask полностью решен
Конечно, теперь есть лучшие способы обработки сообщений. Понимание обработчиков и Asynctask позволяет лучше понять механизм внутренней обработки сообщений Android.
Рекомендуется:EventBusСильно отделенный, код лаконичен и понятен, те, кто заинтересован, могут использовать его для справки.
текст
Я использую несколько классов для реализации таймеров: Handler, Timer, Thread, AlarmManager.
AlarmManager
AlarmManager — это открытая функция сигнализации системы, и ее использование ничем не отличается от обычных менеджеров.
Выше приведено основное использование таймера: сначала получите менеджер, затем определите флаг, время цикла и pendingIntent, выданные в указанное время.
PendingIntents, которые обычно выпускаются, являются широковещательными сообщениями. Мы настраиваем приемник широковещания, а затем мы можем обрабатывать нашу функциональную логику, получая эту широковещательную рассылку.
Здесь нужно обратить внимание на настройку в отдельном процессе, который определяется android
Резюме преимуществ
1, Время будильника не требует, чтобы программа поддерживала себя, но система поддерживала, делая программу лучше избегать подверженных ошибкам проблем, но также занимая системные ресурсы, уровень занятости процессора.
2. Даже после выхода из программы сама по себе проблем не возникнет, и система автоматически вызовет соответствующий компонент для выполнения определенной логики, когда придет время.
3. Разнообразие времени, включая одно время, время цикла (выполняется в xx, xx, x, x, с понедельника по пятницу, который час каждый день . )
Применимая сцена
Я думаю, что он больше подходит для независимой функциональной логики. Например, если приложению необходимо регулярно получать последние данные с сервера, использование независимой службы будет отделено от основной функции и простое в обслуживании. Ключ — низкое энергопотребление и непростое допускать ошибки.
Handler
Обработчик может помочь нам управлять потоком пользовательского интерфейса в дочернем потоке, например, дочерний поток анализирует данные и уведомляет пользовательский интерфейс об обновлении интерфейса после синтаксического анализа. Он также может реализовывать таймеры самостоятельно.
Каждый раз, когда таймер запускается, Handler.sendEmptyMessage (0), таймер запускается. Способ продолжения цикла и остановки уже написан в комментариях.
Резюме преимуществ
Каждый цикл работает в основном потоке, избегая перемежающегося взаимодействия между дочерним потоком и основным потоком. Я лично чувствую, что он более управляем, чем таймер, и реализация функции также очень проста.
Применимая сцена
Лично я думаю, что более целесообразно обновлять пользовательский интерфейс непрерывно без сложной и трудоемкой обработки. Например, в проигрывателе нам нужно обновлять отображение времени текущего прогресса воспроизведения, но только обновлять текстовое отображение. Использование обработчика является хорошим выбором.
Timer
Таймер — это класс, в котором Android запускает таймер напрямую, и это также мой самый ранний класс инструментов, который может реализовать функцию таймера.
Его использование общеизвестно:
задержка: время задержки от начала таймера.
period: интервал таймера.
Резюме преимуществ
Использование Timer очень просто: TimerTask — это дочерний поток, который удобен для обработки сложной и трудоемкой функциональной логики, часто используется в сочетании с обработчиком.
Применимая сцена
По сравнению с таймером, реализованным самим обработчиком, таймер может выполнять некоторую сложную обработку. Например, ему нужно отсортировать список с большим количеством объектов. Выполнение в TimerTask не блокирует дочерний поток. Он часто используется в сочетании с обработчиком для завершения сложной обработки. После длительной операции обновите интерфейс пользовательского интерфейса через обработчик.
** Специально говоря: для некоторых мобильных телефонов, если вы обновляете поток пользовательского интерфейса непосредственно в TimerTask, он не будет сообщать об ошибке и работает нормально, но вы должны обратить внимание на то, что обновление пользовательского интерфейса должно выполняться в основном потоке, иначе вы знаете об этом при устранении неполадок. И эта вещь потребляет особую мощность, особенно мощность, особенно мощность. Важно сказать три раза, обязательно выключайте ее, когда она не используется, и используйте ее с осторожностью.
**
Thread
Поток реализует таймер, создав дочерний поток в цикле while, и пользовательский интерфейс может быть обновлен через обработчик. Лично я думаю, что Thread и Timer одинаковы, но выглядят по-разному.
Резюме преимуществ
По ощущениям похож на таймер, без особых преимуществ
Применимая сцена
Как и в случае с таймером, если многопоточность не считается хорошей, часто возникают проблемы, и одновременно существует несколько потоков с одной и той же функцией.Самый Android имеет ограничение на число дочерних потоков, а приложение запускает несколько потоков одновременно. Это ужасная вещь, поэтому, как и Таймер, вы должны тщательно обдумать его при использовании.
1. Используйте метод Handle и thread’s sleep (long)
1) Определить класс обработчика для обработки полученного сообщения.
2) Создайте новый класс потока, который реализует интерфейс Runnable, следующим образом:
3) Добавьте следующую инструкцию, где вы должны начать поток:
Анализ: Реализация собственной чистой Java после сна не гарантирует конкуренцию за ресурсы ЦП, что также вызывает проблему точности, которая должна быть> = 10000 во времени.
2. Использование метода postDelayed обработчика (Runnable, long)
1) Определить класс обработчика
2) Запустить и остановить таймер
Анализ: Ну, это выглядит довольно хорошо, и реализация также проста, и не должно быть никаких блокировок во время сна. Обратите внимание на разницу между ожиданием и интервалом.
3. Способ совмещения Handler с таймером и TimerTask
1) Определить таймер, задание таймера и обработчик
2) Инициализировать задачу таймера
3) Запустить и остановить таймер
Кроме того, Timer также может быть реализован с помощью runOnUiThread следующим образом
Анализ: timer.schedule(task, 2000, 3000); Это означает, что он выполняется в первый раз через 2 секунды, а затем каждые 3000 секунд. Таймер не гарантирует точности и не может разбудить процессор, который не подходит для синхронизации фоновых задач.
Используйте AlarmManger для достижения долгосрочных задач точного времени
Существует три распространенных метода AlarmManager:
- set (тип int, long startTime, PendingIntent pi); // один раз
- setExact (тип int, long triggerAtMillis, операция PendingIntent) // Одноразовая точная версия
- setRepeating(int type,long startTime,long intervalTime,PendingIntent
pi); // повторить точно - setInexactRepeating(int type,long startTime,long
intervalTime, PendingIntent pi); // Неточно, уменьшить потребление энергии
type указывает тип тревоги, startTime указывает первое время выполнения тревоги, long intervalTime указывает время интервала, а PendingIntent указывает действие ответа тревоги
Подробное объяснение вышеуказанных параметров
Тип будильника:
- AlarmManager.ELAPSED_REALTIME: остановка после спящего режима, относительное время загрузки
- AlarmManager.ELAPSED_REALTIME_WAKEUP: ЦП по-прежнему может выходить из спящего режима, чтобы продолжать работать относительно времени загрузки
- AlarmManager.RTC: то же, что 1, но время относительно абсолютного времени
- AlarmManager.RTC_WAKEUP: то же, что 2, но время относительно абсолютного времени
- AlarmManager.POWER_OFF_WAKEUP: все еще доступен после выключения относительно абсолютного времени
Абсолютное время: 1 января 1970 года, 0 часов
startTime:
Первое время срабатывания тревоги в миллисекундах, обычно с использованием текущего времени.
- SystemClock.elapsedRealtime (): миллисекунды, прошедшие с момента запуска системы
- System.currentTimeMillis (): 1 января 1970 г. Прошло 0 миллисекунд
intervalTime:Интервал исполнения.
PendingIntent :
PendingIntent используется для описания намерения и его окончательного поведения, здесь оно используется для получения действия по выполнению запланированной задачи.
Подробный справочный перевод:PendingIntent
Используйте AlarmManger + Service + BarocastReceiver для достижения 5 с после операции печати
Запустите запланированные задачи:
Эффект Демо:
В этом примере достигается эффект бесконечного цикла через вызов цикла широковещательного приемника и службы. Конечно, вы также можете использовать setRepeating напрямую для достижения того же эффекта.
Примечание. Не забудьте зарегистрировать службу и получателя рассылки в файле манифеста.
Метод отмены AlarmManager: AlarmManger.cancel ();
Анализ: этот метод может разбудить процессор и даже достичь точного времени, что подходит для взаимодействия со службой для выполнения некоторых долгосрочных действий синхронизации в фоновом режиме.
В этой статье резюмируется: первый метод не рекомендуется. Краткосрочные запланированные задачи рекомендуется выполнять вторым и третьим способами. Долгосрочные или точные задачи можно выполнять в фоновом режиме с помощью Service.
Любые другие вопросы могут быть подняты ниже или напрямую связаныОфициальный документ AlarmService
окончание
Выше приведены несколько методов реализации таймеров, которые я лично использовал, но они являются лишь краткими введениями. В Интернете есть много связанных материалов для более подробного использования. Если есть ошибки, пожалуйста, оставьте комментарий и комментарий. Я надеюсь закончить чтение этого. Эта статья может помочь вам.
Источник
7 лучших приложений таймера для Android
Появление магазинов мобильных приложений принесло нам разнообразие даже для повседневных повседневных задач, о которых мы обычно не думаем дважды. Возможность установить таймеры является одним из них.
Теперь у вас есть возможность выбрать из огромного спектра приложений для таймера, нужно ли вам это для упражнения или учебной сессии. Вот лучшие приложения таймера для Android.
1. Визуальный таймер
Visual Timer — это минималистичное приложение с чистым дизайном, которое позволяет быстро запустить таймер. Он имеет большой интерфейс часов на домашней странице, с которым вы можете взаимодействовать, чтобы установить продолжительность. Как только вы отпустите палец, Visual Timer автоматически начнет отсчет времени.
В приложении есть множество других инструментов, которые вам могут пригодиться, например, пользовательские пресеты для сессий, которые вам регулярно нужны, одновременные таймеры, параметры звука, ночной режим и многое другое.
Скачать: Визуальный таймер (бесплатно)
2. Goodtime
Если вы в первую очередь хотите создать таймеры для повышения производительности, попробуйте Goodtime. Приложение построено для управления временем и позволяет вам следовать подходу Pomodoro к управлению временем
Как простой таймер Pomodoro сделал мою жизнь лучше
Как простой таймер Pomodoro сделал мою жизнь лучше
Техника Pomodoro — один из самых простых лайфхаков по управлению временем. Прорывайтесь отвлекаться с помощью 25-минутных кусков и таймера. Это может быть изменяющее жизнь рутинное изменение, если оно вас устраивает.
Прочитайте больше
, Pomodoro подразумевает, что вы разбиваете работу на короткие сессии, разделенные мини и длинными перерывами. Это умный метод управления временем, который оказался успешным для многих, включая меня.
Goodtime позволяет вам сделать то же самое с помощью простого пользовательского интерфейса на основе жестов. Вы можете перемещаться между перерывом и работой, проводя пальцем влево или вправо, проводя вверх, чтобы добавить еще одну минуту, и проводя вниз, чтобы завершить сеанс.
В приложении также есть вкладка статистики, где вы можете увидеть, насколько хорошо вы выступили в предыдущих сессиях, и пометить каждый из них соответствующим флагом. Также есть OLED-дружественная темная тема и полноэкранный режим. Кроме того, Goodtime имеет открытый исходный код и не показывает никакой рекламы.
Скачать: Goodtime (бесплатная, премиум версия доступна)
3. Таймер Плюс
Для людей в поисках таймера тренировки, не смотрите дальше, чем Timer Plus. Это бесплатное приложение предлагает возможность настроить целые интервальные тренировки с вариантами перерывов, количеством раундов, которые вы хотели бы пройти, и количеством общих подходов.
Более того, вы найдете большой, смелый дизайн, чтобы вы могли просматривать статус без каких-либо хлопот во время тренировки. Timer Plus также имеет голосовую помощь, которая говорит, когда вы собираетесь в перерыв или новый раунд. Точно так же приложение мигает экраном вашего телефона или запускает заднюю светодиодную вспышку — отлично, если вы обычно держите его подальше от места для тренировок.
Вы можете создать столько пользовательских предустановок обучения, сколько захотите, и переходить к ним без навигации по кучам меню. Также есть встроенный секундомер.
Скачать: Таймер Плюс (бесплатно)
4. Интервальный таймер
Если вы чувствуете, что Timer Plus немного перегружен вашими потребностями, взгляните на Interval Timer. Приложение имеет значительно более простой интерфейс, практически без кривой обучения, и позволяет быстро определять наборы, а также их длительности.
Вы можете указать один рабочий интервал и другой для отдыха на каждом круге. Кроме того, он имеет большие шрифты и яркие цвета, так что вы можете с комфортом проверить свой темп. Тем не менее, Interval Timer показывает рекламные баннеры.
Скачать: Интервальный таймер (бесплатно)
5. Таймер
Timer — еще одно приложение, ориентированное на фитнес, которое создано в основном для тренировок с участием кругов, например спринтов Он имеет продуманный интерфейс, который позволяет мгновенно запускать секундомер или таймер, и с ним легко взаимодействовать, чтобы отмечать круги.
Приложение отображает эти точки разными цветами, и вы можете просто провести пальцем влево, чтобы просмотреть полный список кругов. Кроме того, у вас есть доступ к таким параметрам, как темы, предустановки и некоторые другие.
Скачать: Таймер (бесплатно)
6. Фокус мозга
Brain Focus — приложение для таймера, ориентированное на производительность. По сравнению с Goodtime, здесь есть пара продвинутых утилит, особенно для людей, которым трудно сконцентрироваться. Для начала вы можете создавать сеансы на основе техники Pomodoro и анализировать статистику, чтобы лучше понять, как вы работаете.
Но Brain Focus опирается на это, добавив кучу изящных инструментов. Например, он может блокировать Wi-Fi и звук, когда вы находитесь в середине сеанса. Более того, вы можете заблокировать ненужные сторонние приложения (такие как Instagram) прямо из Brain Focus.
У вас также есть возможность генерировать новые пресеты для конкретных задач и классифицировать для облегчения доступа. Темы также доступны, наряду с настройками настройки для таймеров и связанных уведомлений.
Скачать: Brain Focus (бесплатная, доступная премиум-версия)
7. Engross
Engross предлагает знакомый набор функций для приложения таймера, но он выделяется вкладкой для ваших задач. Это позволяет вам запускать таймеры и связывать их с вашими задачами.
Engross следует тому же стилю Pomodoro, но вы можете персонализировать периоды в зависимости от ваших предпочтений. Слева также есть подробный экран статистики, который даже показывает анализ ваших возможностей фокусировки.
Скачать: Engross (бесплатная, премиум версия доступна)
Далее попробуйте новое приложение будильника
К этому времени вы, должно быть, уже поняли, что в Play Store доступно множество приложений для таймера, которые могут удовлетворить любые ваши конкретные потребности. Приложения, перечисленные выше, предлагают лучший набор функций в своих областях, и большинство из них также абсолютно бесплатны.
Если вам также не хватает стандартного приложения-будильника на телефоне, попробуйте эти лучшие сторонние приложения-часы для Android
10 лучших приложений-будильников для Android в 2016 году
10 лучших приложений-будильников для Android в 2016 году
Наличие твердого приложения будильника важно, если вы хотите проснуться вовремя. Попробуйте один из них.
Прочитайте больше
,
Узнайте больше о: приложениях для Android, управлении временем, программном обеспечении для таймеров.
10 лучших бесплатных Google шрифтов для профессиональных презентаций
Источник