2017-09-04 7 views
1

을이 작업을 수행 할 수 없습니다 생산최소화 앱은 ... 내가 응용 프로그램을 최소화하고 응용 프로그램을 충돌 요청의 중간에, 나는 개조와 비동기 요청을 만들고있어 onSaveInstanceState

내 로그 오류 :

여기
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1842) 
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1860) 
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:650) 
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:609) 
at br.com.ole.oleconsignado.util.ActivityUtils.replaceFragmentToActivityWithBackStack(ActivityUtils.java:109) 
at br.com.ole.oleconsignado.ui.fragment.init.LoginFragment.notifyGetProspectSuccess(LoginFragment.java:410) 
at br.com.ole.oleconsignado.ui.presenter.LoginPresenter$4.onSuccess(LoginPresenter.java:91) 
at br.com.ole.oleconsignado.ui.presenter.LoginPresenter$4.onSuccess(LoginPresenter.java:88) 
at br.com.ole.oleconsignado.network.RestCallback.onResponse(RestCallback.java:24) 
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 
at android.os.Handler.handleCallback(Handler.java:751) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6165) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778) 

그것의 요청 리턴 성공하면 내가 전화하는 방법 :

ActivityUtils.replaceFragmentToActivityWithBackStack(getFragmentManager(), IncompleteStatusFragment.newInstance(mLogin.getCustomerId(), mCustomer, prospect, mLogin), R.id.container_login); 

누군가가 나를 도울 수 있습니까?

답변

0

앱을 최소화하면 앱에 초점이 맞지 않아서 조각을 대체 할 수 없습니다. & java.lang.IllegalStateException을 던집니다. 해당 플래그가 참이면 액티비티의 onResume에 플래그 &을 유지하고 해당 프래그먼트를 바꾸어야합니다.

@Override 
public void onPause() { 
    mIsActivityVisible = false; 
} 

@Override 
public void onResume() { 
    mIsActivityVisible = true; 
    if(mShouldReplaceFragmentOnResume) { 
     mShouldReplaceFragmentOnResume = false; 
     // replace fragment 
    } 
} 

// On Success response 
onSuccessOfYourCall() { 
    if(mIsActivityVisible) { 
     //replace fragment 
    } else { 
     mShouldReplaceFragmentOnResume = true; 
    } 
} 
같은