问题解决记录:
环境:APP主界面的启动方式SingleTask. 当主界面在前台的时候,全局Application接收到广播,打开SingleTask本APP语音通话界面,一切操作正常.
问题出现: 当App主界面在后台的时候,全局Application接收到广播,打开了SingleTask的语音通话界面,执行了onCreate(),然后就执行onDestory(),最终显示主界面(MainActivity).语音通话呼叫功能被中断.
修复过程: 在广播设置打开语音通话界面的Intent, 在原来加的intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);基础上添加了intent.setFlag(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);就使得即使主界面MainActivity在后台,也可以正常的弹出通话界面,等待接听.
原因猜测: 不添加Intent.FLAG_ACTIVITY_MULTIPLE_TASK时,由于MainActivity 的弹出,所以把栈顶的Activity都结束掉了,包括语音通话Activity
两个Activity的清单列表设置如图;