2013-03-08 152 views
1

在我的應用程序中,有一個活動UserMenu,其中(在創建時)後續加載完成。我希望下次打開應用程序時,不應再次重新載入此屏幕 - 我想將UserMenu屏幕的狀態保存爲原樣。保存活動狀態 -

我一直在通過this,但我無法看到我必須實現,我不想保存任何值,只是我想重新創建相同的屏幕,因爲我可以按在android中的主頁按鈕。

請幫我解決我的問題。

感謝

+0

您能簡單介紹一下後續的加載過程嗎?您希望保存爲屏幕狀態的具體內容是什麼? – 2013-03-08 06:56:58

+0

我有一個可擴展的列表視圖,並得到它的陣列列表爲組和孩子,也在asynctask一些API在背景調用 – 2013-03-08 06:59:04

回答

0

你可以這樣做

在你userMenu的Activity類

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

     return super.onKeyDown(keyCode, event); 
    } 

    private void goToHome() { 
     moveTaskToBack(true); 

    } 

所以,當你按下後退按鈕的活動將不會被銷燬,轉移到家庭,一旦你將長按主頁按鈕或從菜單啓動它的應用程序,它不會再次加載活動。

感謝

+0

艾米特,它不是一個好的解決方案。當我從任務管理器清除應用程序時會發生什麼? – 2013-03-08 07:04:02

0

它根據我是不可能的,你說的對home鍵是什麼像。當主頁按鈕被按下時,你的活動進入onPause(),當你重新打開它時,它出現在onResume()。你可以做什麼,建議你在下面,即你可以使用onSavedInstanceState()也它沒有保證執行閱讀本onSavedInstanceState

0

您需要按照Activity Lifecycle,使其simple.just保存Actvity元素的值的鏈接從onCreate()函數調用方法加載這些數據,使用ArrayList()保存數據在某個獨立類中,並在onResume()中顯示ArrayList()中存儲的數據。是的,在onCreate()裏面檢查該數據的大小,以判斷數據是否正確已經加載或不加載。如果它尚未加載,請加載它,否則請勿加載。