I am not looked at the code, but when this cleanup is supposed to be called ? At program exit ? It is kinda useless then, operating system will free the memory for you anyway.
But if you load a bitmap every time and don't free it when you don't need it anymore then the memory grows over time . I think this is the case here.