android 中按下返回键销毁activity的详细调用过程。 求大神解答。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 中按下返回键销毁activity的详细调用过程。 求大神解答。相关的知识,希望对你有一定的参考价值。

网上有很多实现双击返回键退出应用程序的 demo 但是不明白为什么这样写 按下返回键就不会销毁activity了。

楼上都是答非所问,人家是想问什么这么做,不是问你怎么做,之所以做成2次,是怕你一次误点就退出程序了,用户体验会很差,所以做成双击,监听返回键第一按不做处理,只记录按下时间,第二次点击的时候判读距离上次点击时间,很短就认为是双击就退出应用,很长就当作第一次点击再记录点击时间,这样就不会误点back而退出应用了。 参考技术A 按下back键时会调用onDestroy()销毁当前的activity,重新启动此activity时会调用onCreate()重建;
而按下home键时会调用onStop()方法,并不销毁activity,重新启动时则是调用onResume()。
参考技术B @Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
// TODO Auto-generated method stub
      if (keyCode == KeyEvent.ACTION_DOWN)
       MainActivity.this.finish();       
       return true;  
      

      return super.onKeyDown(keyCode, event);  

这个是按返回键就会销毁activity,双击销毁是判断你双击的点击事件间隔时间
小于300ms就销毁activity的

参考技术C 监听back键的监听事件,加个判断,如果两次back触发的间隔小于一秒,就执行原来back的方法,否则return;

Android实现按下返回键时不进行Activity销毁从而回退到桌面

如题:

       用户按返回按钮不关闭页面,而是返回到系统桌面,相当于按下home键。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        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;
        }
        return super.onKeyDown(keyCode, event);
    }

以上是关于android 中按下返回键销毁activity的详细调用过程。 求大神解答。的主要内容,如果未能解决你的问题,请参考以下文章

android 在一个Activity 中按下返回键,不结束这个Activity 而是返回上个页面,如何实现?

Android实现按下返回键时不进行Activity销毁从而回退到桌面

在android中按下后退按钮后如何返回相同的选项卡?

按下返回键后Android Activity的生命周期

Android程序中按返回键直接退出了程序,我想按返回键返回上个界面,应该怎么实现,等大神

android中按两次返回键返回桌面或退出程序