我有一个滑块,我有不同的按钮单击事件,当我点击button1我正在加载fragmentA在加载webservice时,当单击滑块中的按钮2我正在加载fragmentB在那个加载webservice,现在当我按下后退按钮移动到fragmentA但是再次加载web服务。我不想在返回片段时加载webservice。
以下是按钮点击事件中的基本活动代码
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment)
//.addToBackStack(backStateName)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
在FragmentA中我正在从webservice中检索日期和时间,我将这些值保存在onsavedinstance状态,如果保存的实例状态为非空,我将在onActivityCreated中设置这些值
public void onSaveInstanceState(Bundle outState) {
outState.putString("date", date);
outState.putString("time", time);
super.onSaveInstanceState(outState);
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(savedInstanceState!=null){
tv_datevalue.setText(""+savedInstanceState.getString("date", ""));
tv_timevalue.setText(""+savedInstanceState.getString("time", ""));
}else{
loadWebService();
}
}
但是每次它都在onbackpressed中加载webservice而不是显示以前的值。 onSavedIntancestate中的日志语句未显示。即; onSavedIntancestate永远不会调用。