对这段代码不是很理解

对这段代码不是很理解

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    try {
        if (keyCode == KeyEvent.KEYCODE_BACK){
            Intent home = new Intent(Intent.ACTION_MAIN);
            home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            home.addCategory(Intent.CATEGORY_HOME);
            startActivity(home);
            return true;
        }
    }catch (Exception e){

    }
    
    return super.onKeyDown(keyCode, event);
}
  1. 这里设置action为ACTION_MAIN,这个不是指向splash页面的么?

  2. 什么是HomeActivity?

  3. 请老师描述一下这段代码的过程,为什么能实现按下back键,返回应用后能直接进入上次保存的页面,谢谢!

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

把上述代码帮你做如下解释,不知道能助于你理解不

http://img1.sycdn.imooc.com//climg/5d1c446b0001586906010241.jpg

  • 爱笑的syt 提问者 #1
    就是这个ACTION_MAIN , 不应该是对应的splash_activity intent-filter 的 action.Main标签么?不是打开splash页面么?为什么是跳到系统桌面? 还是说构造器中的ACTION_MAIN 和 intent.setAction(ACTION_MAIN)不一样?
    2019-07-03 14:06:03
  • irista23 回复 提问者 爱笑的syt #2
    你在xml标记的android.intent.action.MAIN作为程序入口的activity启动,Intent构造中传入的动作其实为了跳转到系统桌面,如果想跳转到splash,Intent intent = new Intent(OrderActivity.this,splash.class);
    2019-07-03 14:44:20
好帮手慕雪 2019-07-03 12:11:21

http://img1.sycdn.imooc.com//climg/5d1c2a0700010e2107180191.jpg

这就跟配制文件配制的信息一样。就是回到此APP的入口页。上图是MainActivity,此项目是SplashActivity。2)HomeActivity是指的手机桌面。3)“为什么能实现按下back键,返回应用后能直接进入上次保存的页”这是系统实现的哦。你点返回键,它会一级的返回上次打开的页面。祝:学习愉快

  • 提问者 爱笑的syt #1
    我不明白,这个intent不应该是启动包含ACTION_MAIN 和 ATEGORY_HOME标签的activity么,并且向该activity以上的内容弹出task栈,这不应该是启动splash页面么?
    2019-07-03 12:44:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师