[英]What is the correct way to serialize objects on orientation change using onSaveInstanceState?
我在方向更改時序列化logCalculation
方法對象。
更改方向時, logCalculation
返回的值將保留在Bundle outState
。 因此它應該顯示數據。
但是,在更改方向時,該列表為空。 它沒有從savedInstanceState.getSerializable("calcLogs")
獲取值
我究竟做錯了什么 ?
這是我的代碼-
ArrayList日志=新的ArrayList();
@Override
public void onSaveInstanceState(final Bundle outState) {
outState.putSerializable("calcLogs", calcLogs);
}
if (savedInstanceState != null) {
try
{
calcLogs = (ArrayList<LogChartData>) savedInstanceState.getSerializable("calcLogs");
}
catch(ClassCastException e)
{
e.printStackTrace();
}
}
if(calcLogs == null)
{
calcLogs = logCalculation(Curcal.getTime());
}
public ArrayList<LogChartData> logCalculation(final Date dt) {
getActivity().runOnUiThread(new Runnable() {
public void run() {
logss.clear();
alert.clear();
logss = fillChartData(dt);
// Some more data here..
}
}
return logss;
}
調用super.onSaveInstanceState()
以便根據需要處理super.onSaveInstanceState()
包
@Override
public void onSaveInstanceState(final Bundle outState) {
outState.putSerializable("calcLogs", calcLogs);
super.onSaveInstanceState(outState);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.