2016-02-01 47 views
1

我將從片段A轉到片段B.現在,當我點擊後臺壓縮時,片段A中的onResume()方法不會被調用。有誰知道這可能是什麼原因?片段OnResume不在後臺調用

這是我曾嘗試和onResume不叫:當你backpress片段彈出,因爲它被添加到堆棧中,但父活動是

public class CurrencyFragment extends android.support.v4.app.Fragment { 
public static String imagepath = null; 
static ArrayList<EquityDetails> catListDao = new ArrayList<EquityDetails>(); 
static ArrayList<EquityDetails> catListDao1 = new ArrayList<EquityDetails>(); 
static int count = 0; 
static boolean ab = false; 
ListView list; 
TextView empty_text; 
View view; 
Activity act; 
AdvisorsAdapter adapter; 
ImageView progressBar; 
CustomToast toast; 
AnimatorSet set; 
private boolean isViewShown = false; 

public static com.advisorymandi.CurrencyFragment newInstance() { 
    return new com.advisorymandi.CurrencyFragment(); 
} 

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser) { 
     isViewShown = true; 
     if (adapter != null) { 
      adapter.filter(""); 
     } 
    } else { 
     isViewShown = false; 
    } 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    view = inflater.inflate(R.layout.equity_activity, container, false); 
    act = this.getActivity(); 
    Constants.check_fragment_visible = 1; 
    count++; 
    return view; 
} 

public void onActivityCreated(Bundle savedInstanceState1) { 
    super.onActivityCreated(savedInstanceState1); 
    setHasOptionsMenu(true); 
    list = (ListView) view.findViewById(R.id.list_equity); 
    empty_text = (TextView) view.findViewById(R.id.empty); 
    progressBar = (ImageView) view.findViewById(R.id.progressBar); 
    set = (AnimatorSet) AnimatorInflater.loadAnimator(getActivity(), R.animator.fadein); 
    set.setTarget(progressBar); 
    progressBar.setVisibility(View.GONE); 
    if (Utils.isNetworkAvailable(getActivity())) { 
     if (catListDao.size() > 0) { 
      adapter = new AdvisorsAdapter(act, R.layout.custom_equity, catListDao, 0); 
      list.setAdapter(adapter); 
     } else { 
      if (!isViewShown) { 
       new FetchAllData(getActivity(), 4).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
      } 
     } 
    } else { 
     toast = new CustomToast(getActivity(), "There is no internet connection!"); 
    } 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    if (adapter != null) adapter.notifyDataSetChanged(); 
    Constants.check_fragment_visible = 1; 
    if (Constants.check_reload) { 
     if (Utils.isNetworkAvailable(getActivity())) { 
      if (!isViewShown) { 
       new FetchAllData(getActivity(), 4).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
      } else { 
      } 
     } else { 
      toast = new CustomToast(getActivity(), "There is no internet connection!"); 
     } 
    } 
} 

@Override 
public void onPause() { 
    super.onPause(); 

} 


} 
} 
+0

發佈您的代碼有幫助。 – Jas

+0

http://developer.android.com/intl/in/guide/components/fragments.html –

+0

@jas我已添加我的代碼。 –

回答

1

片段的生命週期總是與父活動的生命週期相關的完好無損它在前臺,所以沒有調用onResume它已經處於恢復狀態,當你的父母的活動在恢復被稱爲你的片段onResume將被調用。嘗試按回家按鈕,回到應用程序,看看行爲。

0

嘗試這些solution..it會爲你

@Override 
    public void onResume() { 

     super.onResume(); 

     getView().setFocusableInTouchMode(true); 
     getView().requestFocus(); 
     getView().setOnKeyListener(new View.OnKeyListener() { 
      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 

       if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){ 

        // DO YOUR BACK WARD FUNCTIONALITY CODE... 

        return true; 
       } 

       return false; 
      } 
     }); 
    } 
+0

@AnshulSharma ..它是爲你工作的......請讓我知道如果有擔心 –

+0

我會盡力讓你知道。 –

+0

@AnshulSharma ..它對你有幫助嗎? –

相關問題