If a singleton is something you can dispose of, to clean up after it, you can consider it when it's a limited resource (ie. only 1 of it) that you don't need all the time, and have some kind of memory or resource cost when it is allocated.
The cleanup code looks more natural when you have a singleton, as opposed to a static class containing static state fields.
The code, however, will look kind of the same either way so if you have more specific reasons for asking, perhaps you should elaborate.