You cannot say “I am living in this city for 20 years.” “I am living,” implies that you are talking only about the present, but the fact is you started living in the city 20 years ago and you still continue to live there. For actions that started in the past and continue up to the present, you have to say, “have been living.” “I am working,” tells someone what you are doing now — it has no connection with the past. Similarly, “I am eating,” and “I am reading,” tell someone what you are doing at the moment. If you want to tell them that this is something that you have been doing for some time, then you say, “have been doing.” “I have been reading,” suggests that you started reading some time ago and are still reading.
*I have been playing football for two hours. (I started playing two hours ago and am still playing.) *I am playing football. (I am playing now.)