Android service、broadcast后台启动Activity

最近在做一个基于加密但是类似微信的App,要求实现语音电话的功能。在这过程中,遇到一个问题,说严重也不严重但是困扰我很久,当用户通过home键退出当前Activity后,收到来电时,通过后台的service.startActivity,此时,界面延迟弹出,但是来电铃声提前已经播放了,影响。用户体验很久都找不到原因。后来还是请教大神才解决了,在这里分享一下。

当用户通过home键将程当前Activity置于后台时,任何在后台startActivity 的操作都将会延迟 5 秒,关于延迟 5 秒的操作在 com.android.server.am.ActivityManagerService 中的 stopAppSwitches() 方法中,所有应用都遵从这个原则,除非该应用获取了 "android.permission.STOP_APP_SWITCHES" 权限。比如系统的phone应用。找到原因了,解决其实很容易的,在来电界面onCreate()调用是,才播放铃声就可以了偷笑。这样用户体验会好很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值