Does normal timer not work? If I understand correctly, Dispatcher is something that ment to be working with UI thread, thus once your application has UI thread suspended (going into background) it stops working.
I would first suggest using typical timer:
System.Timers.Timer timer = new Timer{TimeSpan.FromSeconds(1).ToMilliseconds};
timer.Elapsed += (s, e) => {
//cancel activities
}
timer.Start();
There should also be some option to autorestart it.