zoukankan      html  css  js  c++  java
  • android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例

    问题描述,如题目:

    android点击返回键,顺序执行 pause,stop,destory.

    以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行onCreate()方法呢?

    首先,所操作的activity需要在清单文件AndroidManifest.xml中把添加属性android:launchMode="singleInstance

    如图,我要操作的是GoUI这个activity

    然后,在你需要操作的activity里面重写下面这个方法:

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode==KeyEvent.KEYCODE_BACK){
                moveTaskToBack(true);
                return false;
            }
            return super.onKeyDown(keyCode, event);
        }

    监听按键,如果是返回键,则把当前activity添加到后台,而不是惯例似的destory掉。return false与return true的结果是不一样的,前者返回键是回到上一个activity,后者会直接最小化应用,重新进入应用之后首先就会看到你所操作的这个avtivity!

    运行之后,实现的效果是:

    从activityA进入到activityB,再从B进入到activityC(我操作的是activityC),然后返回B,再返回A。A中有个按钮可以直接到C,点击之后,就会发现C的onCreate方法不会被执行。该activityC只是从stop状态解除,重新运行。

    下面是activityC经历的一切:

    creat-->start-->resume-->RUNNING-->pause-->stop-->restart-->start-->resume-->RUNNING

    不过这么做就会导致如果过你想把这个activity关掉就需要大费周折了。除非是直接KILL你的APP。

    话说回来,既然你有本文这个需求,应该来说这个activity也不想关掉把哈哈!

    欢迎关注微信公众号“ **IT客**“ ,投稿邮箱 itkeyy@163.com

  • 相关阅读:
    Oracle 12C ORA-65096: 公用用户名或角色名无效
    一张图记住PMP十大只是领域
    MAC系统升级后APACHE/MYSQL相关问题解决
    Mac配置Apache
    Android源码下载方法
    GIT 远程操作详解
    GIT 配置及常用命令
    安装Oracle-Redhat 5.4 64位
    近期工作计划
    新的起点
  • 原文地址:https://www.cnblogs.com/simuhunluo/p/6592509.html
Copyright © 2011-2022 走看看