
我的申请中有3个活动:
Activity1 -> Activity2 -> Activity3在Activity3内部,如果用户按下Back,我想返回Activity2.在Activity3的onPause事件中,我添加了一个finish()语句.这可能甚至没有必要,但我想确保此活动得到清理.这很好用.
但是,在Activity3中,如果用户按Home或启动新应用程序(通过通知栏或其他方式),我希望Activity3和Activity2都完成.如果用户返回此应用程序,则应该使用Activity1继续.
我已经弄清楚如何做其中一个,但我无法弄清楚如何处理这两种情况,如果它甚至可能.我可以在Activity3中捕获“后退”按钮并将消息发送回Activity2,告诉它不要完成()吗?看起来活动遵循相同的生命周期流程(暂停,停止),无论您将它们发送到后台做什么.
只是回答我为什么要这种行为的问题,想象一下Activity1是一个登录屏幕,Activity2是一个选择屏幕,而Activity3是一个内容屏幕.如果我从内容页面按Back,我希望能够进行新的选择.如果我通过任何其他方式(主页,通知栏)退出,我希望用户“退出”.
在此先感谢您的帮助.
解决方法:
我再一次回答了我自己的问题.我会在这里发布我的解决方案,以防它帮助其他人.
在Activity2和Activity3的onPause事件中,我添加了finish().这将处理用户在这些活动中按Home或响应Notification bar事件的情况.由于这些活动都已完成,如果用户返回应用程序,他们将获得Activity1(现在位于堆栈的顶部.)
在Activity3中,我为“Back”键添加了一个onKeyDown陷阱.由于Activity2在onPause时被杀死,我们必须从Activity3中激活一个新的Activity2.启动Activity2后,Activity3结束.这是Activity3的onKeyDown的代码:
public boolean onKeyDown(int keyCode, KeyEvent event){ if(keyCode == KeyEvent.KEYCODE_BACK) { Intent Act2Intent = new Intent(thisActivity, Activity2.class); startActivity(Act2Intent); finish(); return true; } return false;} 总结 以上是内存溢出为你收集整理的android – 如何控制活动流程 – 后退按钮与主页按钮全部内容,希望文章能够帮你解决android – 如何控制活动流程 – 后退按钮与主页按钮所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)