Работа программы в фоне

Добрый день всем, кто в теме.

Хочу сделать своего рода таймер (типа обратного отсчёта), с последующим уведомлением как звуком, так и вибрацией.

Таймер получился, обратный отсчет с полосой-индикатором прошедшего времени - получилось, звуковое уведомление из аудио-файла получилось, но, как только экран гаснет или свернуть программу, таймер замирает, и продолжает отсчет только после того, как обратно вернешься в программу.

Вопрос: как реализовать фоновую работу программы при сворачивании программы и блокировке экрана, а так же выдать уведомление в шторке о текущем статусе.?