另外,剛才查看了一下Activity的源碼,發現Activity還有個onRestoreInstanceState(Bundle outState)方法.這個方法的描述中也寫到在Activity回復先前保存的狀態時會被調用.
首先要在你要保存的activity中添加如下的代碼。這個是用來保存參數的。
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
Log.d("save", "from onsaveinstancestate");
String statetext=tView1.getText().toString();
String statetime=tView2.getText().toString();
String cmccipconfigString=ipconfigString;
String cmccreferer=lastreferer;
String cmcclastcookieString=lastcookieString;
String cmccnewlastnewparam=newlastnewparam;
String cmccuserZhangHaoString=userZhangHaoString;
outState.putString("state", statetext);
outState.putString("time", statetime);
outState.putString("cmipconfigstring", cmccipconfigString);
outState.putString("cmreferer", cmccreferer);
outState.putString("cmlastcookiestring", cmcclastcookieString);
outState.putString("cmnewlastnewparam", cmccnewlastnewparam);
outState.putString("cmuserzhanghaostring", cmccuserZhangHaoString);
Log.d("save", "from onsaveinstancestate");
}
2
通過這種主方法,你就成功的實現了保存你要的數據。在你的應用被kill之前。系統一定會調用這個方法為你保存相應的參數,但你如果人為的關閉這個activity又是一說,系統就不會去調用這個方法了。
3
接下來如何在再次打開的時候恢復你要的數據呢?接下來就在oncreate中實現這個功能。代碼如下。
if(savedInstanceState!=null){
SharedPreferences getwifiname=getSharedPreferences("wangxing", MODE_PRIVATE);
wifinameBoolean=getwifiname.getBoolean("cmcc", false);
String statetextString=savedInstanceState.getString("state");
tView1.setText(statetextString);
String statetimeString=savedInstanceState.getString("time");
tView2.setText(statetimeString);
if(wifinameBoolean==false){
}
else {
String cmccipconfigStringString=savedInstanceState.getString("cmipconfigstring");
ipconfigString=cmccipconfigStringString;
String cmccrefererString=savedInstanceState.getString("cmreferer");
lastreferer=cmccrefererString;
String cmcclastcookiestringstringString=savedInstanceState.getString("cmlastcookiestring");
lastcookieString=cmcclastcookiestringstringString;
String cmccnewlastnewparamString=savedInstanceState.getString("cmnewlastnewparam");
newlastnewparam=cmccnewlastnewparamString;
String cmccuserzhanghaostringstringString=savedInstanceState.getString("cmuserzhanghaostring");
userZhangHaoString=cmccuserzhanghaostringstringString;
}
Log.d("save", "from saveinstance in denglu");
}
在oncreate中加上這段代碼就可以了。當這個activity被再次打開的時候,它就會自動的檢查上次有沒有保存相關的數據,如果沒有話就直接啟動,但如果有數據的話,就執行這個if中的方法了,這樣就達到了你要恢復的目的了。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。