I absolutely agree with kaylar.
He isn't going to change. And yes you may very well love this guy, but it sounds to me like you would be better off without him.
Think about is like this. You said its been on and off for over a year, and it might be good when its on, but you have to admit that everytime its off it hurts. Wouldn't be easier to have one big hurt right now and work towards getting past him, rather than feeling the pain over and over again each time he hurts you.
Ignore him if he comes crawling back. Take what energy you would have been putting into this relationship and put it into making youself happy until Mr. Right comes along.
It'll get easier I promise