對於原始值,你應該使用onSaveInstanceState
。對於恢復,您可以使用onRestoreInstanceState
或者您可以將某些代碼onCreate
這樣的:
if(savedInstanceState != null) {
// restore old state
} else {
// a fresh start
}
現在恢復像Bitmap
等大型物體,如果他們不創造昂貴,而且不會使你的UI低迷,再次創建它們恢復。如果你不想說,然後使用onRetainNonConfigurationInstance
和代碼看起來就像這樣:
@Override
public Object onRetainNonConfigurationInstance() {
return bmp;
}
@Override
public void onCreate() {
bmp = (Bitmap)getLastNonConfigurationInstance();
}
警告:此API棄用,你可以使用它在舊平臺。我把它放在這裏是爲了說明的目的。新的做法更多地涉及到。
下面是詳細的參考文獻:
getLastNonConfigurationInstance
onRetainNonConfigurationInstance
爲新的API級別11和上述推薦的溶液:
「使用新的片段API setRetainInstance(布爾值),而不是;這也通過Android兼容性套件在舊版平臺上提供。「當你點擊上面的鏈接時,從文檔中選擇一小段代碼。
因此,您將在片段內創建位圖,並在片段上調用setRetainInstance
,以便片段及其內容(在您的案例位圖中)將隨着配置更改而保留。
編號:
setRetainInstance
你想知道一個更好的方式來保存應用程序狀態的活動被銷燬之前?如果有的話可能是 –
。我正在尋找這種方法,或者在活動剛剛進入後臺而另一個簡短活動被調用時不調用saveInstancestate。 – mAndroid