2013-05-15 48 views
1

在活動的onCreate中,您將傳遞一個savedInstanceState包,如何清除該數據? 我指的不是你自己獲得的Bundle,而是這個Bundle的數據是由Android創建/加載的。如何清除保存的實例數據?

這將是一個偶爾清楚,我不想清除應用程序的任何其他數據(即它不應該清除偏好,數據庫等)。

我在考慮回退到有一個標誌和邏輯來有條件地忽略保存的狀態,但這聽起來比剛剛清除保存狀態更笨拙。

回答

3

可能只是將null傳遞到super.onCreate(null) - savedInstanceState是活動實例的已保存狀態,並且(可能)不包含首選項或持久數據。

我不知道你爲什麼要忽略sIS--例如,如果用戶輸入EditText,切換到另一個應用程序並稍後再回來,則會丟失他們已輸入的文本。

+0

這將忽略狀態,不清除它。在狀態中有一個WebView狀態,根據用戶請求,我希望清除這個狀態。所以隨機開關不會一直被丟棄,只是偶爾一次,在用戶請求它之後,所有其他時間我都希望保存狀態(以及其他應用程序設置和數據,所以「清除數據「是不可選的)。 –

+0

我認爲你將WebView的持久狀態混淆爲sIS - 如果你完成一個活動並重新啓動它,sIS將爲空,但WebView仍然可以記住表單數據,密碼,cookies等(當你'明確數據')。但是,WebView及其相關類有方法可以清除這些數據,而不會消除首選項和其他數據 – FunkTheMonk

+0

嗯,是的,我不知道。有沒有辦法清除WebView數據,即使WebView沒有實例化/可訪問(如同一個應用中的另一個Activity)? –

相關問題