Android onBackPressed过时引发返回按钮导航异常及崩溃问题求助
解决onBackPressed过时及返回按钮异常问题
问题原因
onBackPressed()方法已被官方标记为过时,继续使用会与系统返回逻辑产生冲突,导致重复跳转,甚至在Activity已销毁后触发返回操作引发崩溃。
解决方案
使用AndroidX官方推荐的OnBackPressedDispatcher替代过时的onBackPressed()方法,修改自定义返回按钮的点击事件逻辑:
将原代码中的:
backBtn.setOnClickListener(v -> {onBackPressed();});
替换为:
backBtn.setOnClickListener(v -> { getOnBackPressedDispatcher().onBackPressed(); });
补充优化
为避免潜在的空指针异常,建议给otherUser添加非空判断:
if (otherUser != null) { otherUsername.setText(otherUser.getUsername()); }
逻辑说明
getOnBackPressedDispatcher()会获取当前Activity的返回调度器,它能统一处理系统返回键和自定义返回按钮的逻辑,既避免重复触发返回操作,又能在Activity状态不允许返回时(如已销毁)进行安全处理,从根源解决崩溃问题。
内容的提问来源于stack exchange,提问作者Kahiry363
相关产品推荐
相关产品推荐

