Android's bad design
- Force context object everywhere in the apis, without guaranteeing the context passed is usable, since every context has their own life cycles. This is a problem especially in asynchronous tasks or callbacks. When methods are called asynchronously, the contexts passed in may not be usable.