問題描述,如題目:
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