Android call log project used Phone sate listener to listen changes in phone state and content observer is used to keep track on changes in call logs. SQLite data base is used to keep all details that will be use to show on layout.
Tutorial available on my blog: http://www.coders-hub.com/2014/12/call-log-details-after-ending-call.html