我知道android的生命周期,不需要在应用程序中添加“退出”按钮. 但是,这种后退按钮的效果并不是很好. 您可能会从android附带的默认SMS-App中知道此问题:在收到新消息时将其打开,然后使用菜单按钮或其他按钮退出. 例如,当您获得带有“主页”图标的操作栏时,也会打开应用程序的主屏幕.用户选择一个动作,新的活动开始.用户单击主页按钮并返回到主屏幕.当按下后退按钮时-无论是否在onButtonBack侦听器中调用finish(),用户都希望该应用程序退出,但实际上该应用程序返回到上一个活动,这是错误的. 这样的循环可能由于各种原因而发生,这就是为什么-甚至以为我知道我认为应该是android的生命周期-当我在定义的活动中按回时,我不想退出(&销毁)该应用程序. 调用finish()没有帮助.如果以前有活动,它将重新打开它.调用system.exit(0)不好做. 如此:防止此类反向压榨周期和/或退出应用程序的正确方法是什么(有破坏)? 为了更好地说明我要实现的目标:考虑A,B,C是活动.箭头(->)表示从箭头左侧的活动进行的新意图调用,箭头右侧表示所调用的活动.例如:A-> B表示活动A开始活动B.这就是我想要的: > 1)A-> B-> C按返回:-> B pressBack:-> A pressBack:->出口 如您所见,Bback在活动A中退出应用程序后仍然照常工作. 我现在的行为是1)和2),但是 > 3)A-> B->按下返回:-> pressBack:->出口 请记住,我已经用finish()调用覆盖了活动A的onBackPressed侦听器.即使调用system.exit(0)也不起作用.但是,即使这样做:这不是我想要的,我想要真正的方式来实现android风格-我无法想象system.exit(0)是最佳实践. 解决方法: 好吧,这是默认行为. 如果您有其他方法,只需实施即可. 一种解决方法是将 例如,如果SMS应用程序中的SMS页面是singleTop,则只需一按即可删除所有SMS页面.这是一个选择问题 另一种更具进取性的方法是在开始另一个活动时完成活动.当然,这样的决定会冒使应用程序不友好的风险(Android用户不习惯这种行为).但是,如果仅在可以接受的地方使用它,则可能是可以接受的. 一个非常容易接受的操作是登录屏幕:登录成功后,您将启动另一个活动(可能是为登录用户设计的)并完成登录活动. 享受最后,我个人认为,您可以添加退出按钮.用户会发现它不错. Check my post: Adding an Exit button to Android Application 来源:https://www./content-4-542351.html |
|