当我们想用自己的Activity在来电时代替系统的界面进行显示,一般是没有办法把系统界面隐藏的,通常的做法是用自己的界面把系统的界面覆盖住。
因为后启动的界面会将前面已经启动的界面覆盖,所以这里可以用这样的办法解决:
在后台Service设置一个BroadcastReceiver,监听系统的电话事件。当接收到电话Action的时候,延时一定的时间(为的是等系统的接听界面出现后对其进行覆盖),发送一个Intent来打开你的Activity,这时候你的应用将会出现在最顶层而将系统的界面覆盖。
注:以内部类的形式定义的BroadcaReceiver只能在代码中动态注册,除非这个内部类定义为静态,才能在AndroidManifest中静态注册。