This is what I did. I used UriHelper.LocationChanged event to stop the timer
private void InitTimer()
{
base.OnInitialized();
timer = new Timer(60000);
timer.Elapsed += (s, e) => { InvokeAsync(Timer_Elapsed); };
timer.Start();
UriHelper.LocationChanged += (s, e) => { InvokeAsync(StopTimer); };
}
private void StopTimer()
{
timer.Stop();
}