如何在Android片段中进行onbackpressed时停止重新加载片段

时间:2014-07-28 07:13:36

标签: android android-fragments

我有一个滑块,我有不同的按钮单击事件,当我点击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永远不会调用。

0 个答案:

没有答案