Android/IncomingCall

Implement a Broadcast receiver and listen for;

TelephonyManager.ACTION_PHONE_STATE_CHANGED

You have 10 seconds to run your onReceive method, otherwise it can be killed by the user/OS (which ??)

It is generally better to show messages via Notifications, that to start an Activity, for onReceive broadcash noticiations otherwise focus will be stolen off the phone app