Программа для закрытия приложений на андроид по расписанию
В середине лета число приложений в официальном магазине Google Play достигло одного миллиона. И, возможно, самое функциональное среди них — это Tasker. Несмотря на то, что приложение не относится к категории «Игры», несмотря на то, что оно требует немало времени на освоение, все же оно стабильно держится в топе самых популярных платных программ в Google Play.
В том, что у Tasker огромная аудитория почитателей, нет ничего удивительного, ведь приложение дает возможность каждому найти свои способы его использования. Если говорить в общем, Tasker — это приложение для автоматизации. В его основе лежит идея о том, что многие действия, которые пользователь выполняет на своем мобильном устройстве, являются, во-первых, повторяемыми, а во-вторых, связанными с некими событиями. Например, когда вы приходите в театр или в медицинский центр, вы отключаете звук на телефоне, а когда оказываетесь дома — включаете на планшете Wi-Fi. Все подобные действия Tasker может выполнять в автоматическом режиме, разгружая голову владельца мобильного устройства для других, более важных дел.
Tasker — не единственное приложение для автоматизации устройств с Android, и многие его возможности можно также обнаружить в программах on, Locale и им подобных. Однако других столь функциональных приложений, как Tasker, не существует. Программа выходит далеко за рамки обычных шаблонов — имея некоторые навыки ее использования, можно придумывать практически любые сценарии для автоматизации, содержащие множество уровней, и даже создавать на основе Tasker собственные приложения.
Но впервые загрузив Tasker (на сайте разработчика доступна бесплатная триал-версия, работающая в течение семи дней), вы, скорее всего, будете разочарованы. Приложение напоминает коробку с конструктором, в которой есть множество самых разных деталей. При этом не все детали подходят друг к другу, а никаких готовых сценариев использования в приложении нет.
Поэтому даже для того, чтобы создать самую простую цепочку действий, нужно предварительно разобраться с терминологией Tasker и принципами его работы.
Для работы с приложением используется семь основных терминов: задачи, действия, контексты, профили, проекты, сцены, переменные. В основе любых операций, которые способна выполнить программа, лежит формула: «Если произошло событие X, нужно автоматически выполнить Y».
Y в этой формуле — это действие, то, что приложение автоматически выполняет при определенных условиях. Действием может быть отправка SMS, отключение сигнала при поступлении входящих звонков, вывод на экран уведомления и так далее. Всего в приложении предлагается более двухсот действий. Большинство из них имеют настройки и могут быть связаны между собой.
X в формуле — это контекст, то есть некое событие или условие, при срабатывании которого Tasker начинает действовать. В приложении предусмотрено несколько видов контекстов: время, дата, место, событие и состояние.
Если смартфон оказался за чертой города, это контекст места, а 7:15 утра — контекст времени. Контекст события — это, например, поступление входящего звонка с указанного номера. А контекст состояния — это некое условие, которое является активным в течение некоторого промежутка времени. И в течение этого времени выполняются заданные действия.
Ни действия, ни контексты не существуют сами по себе. Действиями управляют задачи, а контекстами — профили. Одна задача может содержать любое количество действий, а один профиль — до четырех контекстов и до двух задач. Таким образом, в рамках одной операции можно выполнять целый набор действий.
Задачи могут содержать любое количество действий и даже быть многоуровневыми. В Tasker предусмотрено действие, запускающее задачу. Поэтому можно создать задачу, в состав которой будет входить действие, запускающее другую задачу. Задачи могут быть запущены в рамках профиля, а также сами по себе, например с помощью виджетов или ярлыков, через сторонние приложения.
Профиль включает и контексты, и задачи, причем если в профиле используется несколько контекстов, то только один из них может быть контекстом события, ведь одновременное срабатывание двух контекстов в то же самое время невозможно. Профиль имеет собственные настройки, при помощи которых можно выбирать приоритет запуска задач, включать «тихий» режим работы (когда информация о срабатывании профиля не видна в строке состояния Android), указывать максимальное число его срабатываний и выбирать минимально допустимый промежуток времени, который может проходить между двумя его запусками.
Также в Tasker предусмотрена возможность создания элементов пользовательского интерфейса, которые тут называются сценами. Понятие проекта используется для организации всех задач, профилей и сцен в одном месте, для экспорта и создания на основе настроек Taskler отдельных приложений.
Первое, что стоит сделать после запуска Tasker, — переключиться в обычный режим в настройках приложения. По умолчанию оно запускается в режиме новичка и имеет упрощенный интерфейс. На соответствующих вкладках можно создавать профили, задачи, сцены и просматривать список уже имеющихся.
Оранжевый значок в виде молнии в верхней части окна предназначен для быстрого включения/отключения всех активных профилей. Встроенный поиск можно использовать для обнаружения созданных ранее задач, профилей, сцен, настроек приложения, а также для получения справочной информации по программе (последняя возможность работает только в режиме онлайн).
Для примера создадим простой профиль, который будет автоматически запускать приложение Skype при подключении гарнитуры к устройству. На вкладке профилей нажмите на кнопку создания нового элемента приложения и выберите контекст состояния «Аппаратура → Наушники подключены». В списке «Тип» выберите вариант «С микрофоном», чтобы приложение реагировало только на подключение гарнитуры.
Вернитесь к списку профилей и добавьте в профиль новую задачу.
Нужно будет придумать для нее произвольное название, скажем «Запуск Skype». Добавьте в задачу новое действие. Для удобства организации они разделены по группам, которых более двадцати.
Перейдите в категорию «Сигнал → Menu». Теперь нужно настроить действие. Для этого в поле Items нажмите на кнопку добавления нового элемента, после чего щелкните по кнопке «Действие». Укажите категорию «Приложение → Запустить приложение», а затем выберите Skype в списке всех установленных приложений, который будет выведен на экран.
Новый профиль готов к использованию. По умолчанию все вновь создаваемые в Tasker профили включаются сразу же после создания, поэтому, если вы пока что не планируете работать с ним, воспользуйтесь переключателем напротив названия профиля.
Все задачи, созданные пользователем, сохраняются на вкладке Tasks. Их можно редактировать, а также использовать повторно при создании новых профилей. Список доступных задач показывается каждый раз при добавлении задачи в новый профиль. Кстати, если в списке случайно выбрана не та задача, можно быстро вернуться к окну выбора при помощи кнопки Switch Event. Подобная кнопка — Switch State — отображается и при добавлении контекста.
Если нужно, чтобы профиль содержал несколько контекстов или задач, достаточно коснуться уже имеющегося в нем контекста (задачи) и некоторое время удерживать палец. Появится меню, в котором можно выбрать добавление нового элемента. Это меню также дает возможность удалять текущие элементы, клонировать контексты (это удобно, если нужно добавить два однотипных контекста с немного измененными настройками), менять задачи на другие.
Как уже было сказано выше, задачи могут запускаться не только автоматически, в рамках профилей, но и по требованию пользователя. Один из удобных способов ручного запуска — создание виджета задачи на стартовом экране. В этом случае для запуска задачи соблюдения никаких условий не потребуется.
Чтобы создать виджет для запуска задачи, перейдите к списку виджетов Android. Коснитесь элемента Tasker и удерживайте палец, пока виджет не будет перенесен на стартовый экран. При этом возникнет меню выбора задачи. Можно будет или выбрать из уже имеющихся, или создать новую задачу. После этого Tasker предложит вам возможность добавить в задачу дополнительные действия и выбрать значок для показа виджета. После завершения настройки его можно будет увидеть на стартовом экране.
Несмотря на то, что в Tasker предусмотрена возможность ручного запуска, все же основное предназначение приложения — выполнение задач в автоматическом режиме. Поэтому рассмотрим примеры создания нескольких востребованных профилей.
Некоторые функции смартфонов удобны, но сильно влияют на время автономной работы устройства. Если нет возможности подзарядить смартфон и нужно, чтобы он проработал как можно дольше, при помощи Tasker можно настроить автоматическое отключение некоторых функций. Для этого используются контекст состояния и задача, содержащая несколько действий.
Добавьте контекст «Состояние → Зарядка → Уровень зарядки аккумулятора». В его настройках укажите уровень заряда, при котором задача будет срабатывать.
Создайте новую задачу и добавьте действие «Экран → Яркость дисплея». Уменьшите яркость дисплея до желаемого уровня. Вернитесь к добавлению действий и добавьте еще одно, например «Сеть → Изменить статус Wi-Fi». Убедитесь, что в настройках действия выбран вариант «Отключить». Теперь Tasker также будет отключать соединение по Wi-Fi.
Также можно отключить автосинхронизацию. Для этого добавьте действие «Сеть → Автосинхронизация» и выберите вариант «Выключить» в списке «Установка».
Можно добавить и другие действия, которые помогут продлить срок автономной работы устройства.
Перегрев аккумулятора может стать причиной выхода устройства из строя, поэтому неплохо было бы узнавать об этом как можно раньше, чтобы адекватно реагировать. Для создания такого профиля используется событийный контекст «Зарядка → Перегрев аккумулятора». Используемая в профиле задача будет включать действие «Сигнал → Уведомление со звуком».
Настройка действия сводится к выбору звукового файла (это может быть любой аудиофайл, хранящийся в памяти устройства или на SD-карте, а также сигнал из коллекции звуков Tasker). Также можно настроить вывод текстового уведомления на экране устройства. Текст нужно ввести в поле «Название».
Если устройство оснащено модулем GPS, можно использовать контекст «Место». Он очень полезен для забывчивых. Например, если вы все время забываете зайти в банк, чтобы забрать новую карточку, можно настроить Tasker таким образом, чтобы он прислал вам SMS, как только вы окажетесь в радиусе пятисот метров от отделения.
Контекст «Место» может работать и без GPS, с использованием сетевых настроек. Но определение местоположения в этом случае происходит менее точно.
При помощи Tasker можно настроить смартфон таким образом, что он автоматически будет переходить в беззвучный режим в заданное время, а потом возвращаться в обычный режим. Но ситуации, в которых громкий вызов телефона нежелателен, могут возникать и спонтанно. Предусмотреть их все невозможно, поэтому лучше запастись профилем, который будет отключать звонок при срабатывании простого условия: устройство перевернуто экраном вниз.
Для создания такого профиля добавьте контекст «Состояние → Sensor → Ориентация». В его настройках раскройте список «Положение» и выберите вариант «Экраном вниз».
Создайте новую задачу с действием «Аудио → Режим тишины». В настройках действия выберите вариант «Тишина» в списке «Режим».
Мы рассмотрели лишь несколько самых простых примеров работы с Tasker. Но программу можно с успехом использовать и в сотнях других случаев. Она может запускать приложения в заданное время, выводить на экран музыкальный плеер, как только вы вставляете наушники в гнездо, поздравлять с днем рождения всех друзей и родственников, автоматически отправляя SMS в нужные дни, будить любимых романтической эсэмэской по утрам и делать еще сотни других вещей, которые обязательно придут вам в голову, как только вы начнете использовать Tasker. Удачи в освоении!
Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «Schedule tasks and jobs intelligently in Android» от Ankit Sinhal.
В современной разработке приложений очень часто выполняются задачи асинхронно, и их объем выходит за пределы жизненного цикла приложения. В некоторых ситуациях мы также должны выполнять некоторые работы, но это не обязательно делать прямо сейчас. Чтобы запланировать фоновые работы, Android представила несколько API, которые мы можем грамотно использовать в наших приложениях.
Выбор подходящего планировщика может улучшить производительность приложений и время автономной работы устройства.
Для планирования задач на Android доступно несколько API:
- Alarm Manager
- Job Scheduler
- GCM Network Manager
- Firebase Job Dispatcher
- Sync Adapter
Проблемы с сервисами
Сервисы позволяют выполнять длительные операции в фоновом режиме. Запуск сервисов в фоновом режиме очень негативно влияет на заряд батареии.
Сервисы особенно вредны, когда они постоянно использует ресурсы устройства, даже если не выполняет полезные задачи.
Запланированный задачи во время жизненного цикла приложения
Когда приложение запущено, и мы хотим запланировать или запустить задачу в определенное время, рекомендуется использовать класс Handler вместе с Timer и Thread.
Запланированные задачи при выключенном приложении
Alarm Manager
AlarmManager обеспечивает доступ к службам уведомлений. Это дает возможность выполнять любые операции за пределами жизненного цикла вашего приложения. Таким образом, вы можете инициировать события или действия, даже если ваше приложение не запущено. AlarmManager может запустить сервис в будущем.
Мы должны использовать API AlarmManager только для задач, которые должны выполняться в определенное время
Пример использования: предположим, что мы хотим выполнить задачу через 1 час или каждый час. В этом случае AlarmManager нам поможет.
Job Scheduler
Это главный из всех упомянутых вариантов планирования и очень эффективный с фоновыми работами. JobScheduler API, который был представлен в Android 5.0 (API уровня 21).
Этот API позволяет выполнять задания, когда у устройства больше доступных ресурсов или при соблюдении правильных условий. Все условия могут быть определены при создании задания. Когда объявленные критерии будут выполнены, система выполнит это задание в JobService вашего приложения. JobScheduler также отменяет выполнение, если необходимо, чтобы соблюдать ограничения режима Doze и App Standby.
GCM Network Manager
GCM (Google Cloud Messaging) Network Manager имеет все функции расписания из JobScheduler. GCM Network Manager также предназначен для выполнения многократной или одноразовой, неминуемой работы при сохранении времени автономной работы.
Он используется для поддержки обратной совместимости и может также использоваться под Android 5.0 (API уровня 21). Начиная с уровня API 23 или выше, GCM Network Manager использует JobScheduler для платформы. GCM Network Manager использует механизм планирования в службах Google Play, поэтому этот класс будет работать только в том случае, если на устройстве установлены сервисы Google Play.
Google настоятельно рекомендовал пользователям GCM перейти на FCM и вместо этого использовать диспетчер заданий Firebase для планирования любых задач.
Firebase Job Dispatcher
Firebase JobDispatcher также является библиотекой для планирования фоновых заданий. Он также используется для поддержки обратной совместимости (ниже API 21) и работает во всех последних версиях Android (API 9+).
Эта библиотека также будет работать, если на устройстве нет установленных сервисов Google Play. В этом состоянии эта библиотека внутренне использует AlarmManager. Если на устройстве доступно приложение Google Play, он использует механизм планирования в службах Google Play.
Sync Adapter
Sync adapters разработаны специально для синхронизации данных между устройством и облаком. Он должен использоваться только для этого типа задач. Синхронизация может быть вызвана изменениями данных в облаке или на устройстве или по истекшему времени.
Система будет пытаться синхронизировать только тогда, когда устройство подключено к сети.
Упражнение
Мы обсудили достаточно теории, поэтому теперь посмотрим, как использовать планировщик заданий Android.
Создание Job Service
Создайте JobSchedulerService extends JobService, который требует, чтобы были созданы два метода onStartJob (параметры JobParameters) и onStopJob (параметры JobParameters).
Метод onStartJob вызывается, когда JobScheduler решает запустить вашу работу. JobService работает в основном потоке, поэтому любая логика должна выполняться в отдельном потоке. Метод onStopJob вызывается, если система решила, что вы должны прекратить выполнение своей работы. Метод вызывается до jobFinished (JobParameters, boolean).
Вам также необходимо зарегистрировать свою службу в AndroidManifest.
Создать объект JobInfo
Чтобы построить объект JobInfo, передайте JobService в JobInfo.Builder (), как показано ниже. Этот конструктор заданий позволяет установить множество различных параметров управления при выполнении задания.
Запланированная задача
Теперь у нас есть JobInfo и JobService, поэтому пришло время планировать нашу работу. Все, что нам нужно сделать, это запланировать работу с требуемой JobInfo, как показано ниже:
Заключение
При планировании задания вам нужно тщательно подумать о том, когда и что должно вызвать вашу задачу, и что должно произойти, если она по какой-то причине не сработает. Вы должны быть очень осторожны с производительностью вашего приложения, а также с другими аспектами, такими как заряд батареи.
JobScheduler легко реализуется и обрабатывает большую часть за вас. При использовании JobScheduler наши запланированные задания сохраняются, даже если система перезагружается. В настоящий момент единственным недостатком JobScheduler является то, что он доступен только для 21 уровня api (Android 5.0).
Широко известное решение под названием Greenify занимает особое место в сегодняшнем обзоре, поскольку его основной функцией является как раз-таки «усыпление» открытых в фоне программ, аналогично встроенному в Android режиму Doze, с которым рассматриваемое приложение работает в паре.
Гринифай поддерживает работу с рут-правами, благодаря чему открываются дополнительные возможности вроде создания списка программ, которым запрещено стартовать при любых условиях. Из других функций отметим добавление ярлыков для быстрого доступа. Откровенных недостатков не обнаружено, так что можем смело его рекомендовать.
Servicely
Следующее решение, которое мы хотим представить, называется Servicely. Как и упомянутое выше Greenify, оно предназначено для закрытия фоновых процессов, но в отличие от него, предлагает больше возможностей – например, автоматическую выгрузку после заданного интервала времени. Также уникальной функцией этого софта является отключение не только приложений, но и сервисов.
Рассматриваемое средство требует для работы наличие Root, однако в обмен на предоставление соответствующего разрешения пользователь получает гарантированное отключение выбранной программы, без возможности ее автоматического запуска. Увы, есть у Сервисли и минусы – интерфейс доступен только на английском языке и присутствует реклама, отключаемая платно.
ES Task Manager
Те, кто уже давно пользуется Android, наверняка слышали о программе ES File Explorer. От этого же разработчика доступно и решение ES Task Manager, одной из функций которого является остановка приложений. Механизм её работы не такой совершенный, как в Greenify или Servicely, однако достаточно эффективен, позволяя нажатием одной кнопки или использованием виджета решить озвученную задачу.
Такой принцип работы безусловно удобен, но не подходит для ситуаций, когда требуется остановить лишь несколько программ, а не все фоновые процессы. Из дополнительных возможностей отметим менеджер автозапуска, а из недостатков – рекламу, которую можно убрать покупкой полной версии.
KillApps
Ещё одно решение, которое мы хотим вам представить – KillApps. Оно тоже умеет останавливать выбранные приложения в один клик, а также имеет функцию автоматической остановки, подобно Servicely. КиллАппс может также фильтровать важные программы согласно «белому списку».
Дополнительной функциональности немного – можно отсортировать системные и пользовательские программы, а также просмотреть журнал ошибок, если KillApps столкнулось с проблемами в своей работе. Присутствуют и минусы – есть реклама и платный контент, но пользованию приложением они не мешают.
Naptime
Последнее приложение, которое мы хотим сегодня рассмотреть, называется Naptime. Разработанное создателем стороннего ядра Franco, Naptime эффективно использует встроенную в Android функцию Doze и заставляет его работать сразу после выключения экрана телефона, представляя собой, по сути, надстройку с более удобным средством управления. Таким образом обеспечивается бесперебойная работа этого алгоритма.
Для функционирования Нэптайм требуется root-доступ, но можно воспользоваться ADB для получения требуемых разрешений. Также к недостаткам можем отнести наличие рекламы, отсутствие локализации на русском языке и невозможность работы программы на процессорах с архитектурой, отличной от ARM.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Есть 2 разных, но одинаково простых способа установки таймера приложения для приложения на Android 9.
1. Откройте настройки устройства Android 9.
2. Перейдите в раздел «Цифровое благополучие и родительский контроль».
3. Нажмите на приборной панели.
4. Нажмите значок таймера перед приложением, для которого вы хотите установить таймер.
5. Установите таймер.
7. Таймер для этого приложения был настроен правильно.
8. Чтобы изменить таймер, коснитесь установленного времени еще раз.
9. При необходимости измените таймер.
11. Чтобы удалить установленный таймер из приложения, коснитесь значка таймера.
12. Выберите опцию Удалить таймер, а затем нажмите ОК.
1. Перейдите на страницу настроек вашего устройства.
2. Нажмите Приложения и уведомления.
3. Выберите приложение, для которого вы хотите установить таймер, из списка установленных приложений.
4. Перейдите в Дополнительные настройки для этого приложения на странице своего приложения.
5. Нажмите прошедшее время в приложении.
6. Выберите опцию «Таймер приложения».
7. Выполните те же шаги, которые указаны выше (шаги 5-12).
Частые вопросы
1. Будет ли мое устройство также перезагружаться по истечении установленного времени?
Нет, только рассматриваемое приложение будет перезапущено.
2. Почему я вам нужно установить таймер в приложении, чтобы начать?
3. Что происходит после истечения времени?
4. Есть ли ограничение на количество раз, которое я могу установить таймер в приложении?
Читайте также: