在Android 12之前,按下“返回”按钮,会执行当前Activity的finish()方法。如果是在启动器Activity中按下“返回”按钮,则是结束App的运行。
Android 12改变了这一行为,具体见https://developer.android.google.cn/about/versions/12/behavior-changes-all?hl=zh-cn#activity-lifecycle。
对于大多数应用而言,此变更意味着使用“返回”按钮退出应用的用户可以更快地从温状态恢复应用,而不必从冷状态完全重启应用。
这会使App再次运行时保持上次退出的状态,好还是不好,见仁见智。但像我这种非专业开发人员,平时并不关注Android的版本更新,就被坑了一回。
最近写了一个App,里面有一个前台服务。之前的设备都是Android 12以下的版本,运行时没发现问题。
然后在Android 12的终端上测试时,出了一个问题。
启动App后,前台服务运行,在通知栏上显示图标。这时候按下“返回”按钮,App退出。然后再按通知栏上的图标,唤醒App界面,再按“返回”按钮,就会发现App没有退出,而是显示上次退出时的界面,再按一下“返回”按钮“,界面才会消失。
查看日志,发现没有执行Activity的onDestroy()方法,确定是窗体没有被销毁引起的问题,但是想不出原因啊!
简直莫明其妙,头都大了。文章来源:https://www.toymoban.com/news/detail-676042.html
百思不得其解,百度也找不到答案。后来想想,只有Android 12才有这个问题(手上的设备,Android最高版本就是12),然后才找到上面链接里的文档。在onKeyUp事件里加了个finish()方法解决了这个问题。文章来源地址https://www.toymoban.com/news/detail-676042.html
到了这里,关于Android 12对“返回”按钮的处理带来的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!