You should decouple view (mPlayPauseButton) from that functionality to avoid leaks. To do this, you can implement a listener pattern. The easier way in that code could be passing a "listener" object as a parameter instead directly the view reference...