android– 如何控制活动流程 – 后退按钮与主页按钮

android– 如何控制活动流程 – 后退按钮与主页按钮,第1张

概述我的申请中有3个活动:Activity1->Activity2->Activity3在Activity3内部,如果用户按下Back,我想返回Activity2.在Activity3的onPause事件中,我添加了一个finish()语句.这可能甚至没有必要,但我想确保此活动得到清理.这很好用.但是,在Activity3中,如果用户按Home或启动新应用

我的申请中有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 – 如何控制活动流程 – 后退按钮与主页按钮所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1116266.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存