问题描述,如题目:
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也不想关掉把哈哈!