2014-02-23 29 views
-1

當我按下我的活動時,它會調用onSaveInstanceState()並保存「bundle savedInstanceState」,這是正確的。 但我要消滅它或將其設置爲null 只有當我按後退按鈕或破壞活性如何徹底摧毀背部按壓活動?

我只需要onSaveInstanceState()我的配置更改的活動中。

我想我需要使用onBackPressed()但我應該把它放在哪裏?

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
} 

編輯:

可以說我有一個活動包含一個列表,當我點擊列表我上面提到的活動將啓動一個項目。

我的第二個活動是主/明細流活動,當我點擊這個活動列表上的一個項目時,它將更新細節的片段(這裏是一個viewpager),它將保存當前列表的選擇。

現在,當我按下第二個活動的按鈕時,它將返回列表活動,如果我單擊一個列表項目,它將轉到第二個活動,並按下之前的選擇。 (它還挺通過保存回堆棧的選擇)

我注意到它無關savedinstancestate,我的第二個活動不會通過後退按鈕,將分離,然後裝樣片段破壞。

我想在按下後退按鈕時完全銷燬第二個活動。

編輯2:

當我甚至通過後退按鈕關閉我的應用程序並重新啓動它,然後去第二個活動,我看到我的最後的狀態,我點擊了該項目。 (我在列表中使用了setChoiceMod(...單個))

感謝您的幫助。

+0

你想達到什麼目的?你是否想回到一個不是按照後臺的順序進行的活動?您可以清除後臺堆棧並再次開始上一個活動。否則,堅持準則,並讓用戶使用後退按鈕的目的。 –

+0

@RED_我更新了我的帖子,現在檢查它... – Virusman

+0

您可以覆蓋onBackPressed()方法並添加this.finish(); –

回答

0

我注意到,我在第二個活動中定義的變量,通過回堆保存它們的值(即我在活動改變),即使是在關閉應用程序將不會刪除它們。

的變量:

mcurchoice = 0; 
mcurtab = 0; 

有人可以在註釋中說明他們將如何通過活動的挽救自己的價值破壞:

static int mcurchoice ; 
static int mcurtab ; 

我在onBackPressed()方法將它們設置爲0解決我的問題?

0

應該是這樣的:

@Override 
public void onBackPressed(View v){ 

onBackPressed(); 
} 
}); 
+0

這也沒有工作。 – Virusman