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

posted @ 2017-03-21 00:52  须小弥  阅读(9800)  评论(0编辑  收藏  举报