2016-02-01 50 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 ..它对你有帮助吗? –

相关问题