If you perform a task on a thread in the background (after the app has gone inactive) and then add an execution block to the main threads queue, while still in the background, it will not start executing until the app becomes active again.

This is why I cannot completely reload dialvetica as the app goes inactive, I can only do the background processing part, the table has to be reloaded when the app becomes active.