나는 뒤로 어떻게 가야하는지 잘 모르겠습니다. onBackPress 메서드를 재정의하고 조각 전환을 통해 조각을로드했기 때문에 이것이라고 생각합니다. 다시 누르면 조각을 시작하고 새 사본 조각 객체를 만듭니다. 네트워크 호출이 다시 호출되지 않도록 방지 할 수 있습니다.
시도해 볼 수 있습니다. onbackpress 메서드를 재정의합니다.
@Override
public void onBackPressed() {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count == 0) {
navigateActivity(HomeActivity.class);
} else {
getSupportFragmentManager().popBackStackImmediate();
}
}
그리고 다음과 같이 새로운 조각을 시작,이 도움이 될 것입니다
public void switchFragment(Fragment frag) {
String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate (backStateName, 0);
if (!fragmentPopped){
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.report_fragment, frag);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.addToBackStack(backStateName);
fragmentTransaction.commit();
}
}
희망.
예 여러 가지 방법을 피할 수 있습니다. – Piyush
조각 교환을 위해 대체를 사용하고 있습니까? add를 사용하면 조각이 제거되지 않습니다. 몇 가지 코드를 추가 할 수 있으면 도움이 될 것입니다. 참조 할 수 있습니다. https://developer.android.com/guide/components/fragments.html#Transactions –
예 replace 메소드를 사용하고 있습니다. 그 문제가 그 이유입니까? 이전 조각을 대체하기 때문에 돌아올 때 상태를 다시 생성해야합니다? – slenderm4n