네트워크 응답 후 조각에 인수를 적용 할 때 IllegalStateException 발생

x10sion

네트워크 호출이 완료된 후 IllegalStateException인수를 추가하려고 하면 오류가 발생 fragment합니다. 충돌은 네트워크가 통화를 수행하고 아직 완료되지 않은 상태 (느린 네트워크)에서 발생하며 활동을 백그라운드로 가져갑니다 (예 : 활동 전환).

네트워크 호출에서 가져온 데이터를 fragment이미지 스크롤을 위해 페이지 래더를 채울 URL 목록 으로 전달해야합니다 .

내 코드 :

`onResume` I do the network call by calling `doWebserviceCall();`

네트워크 호출 후이 메서드를 호출합니다.

  private void configureImageScroller() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    Bundle bundle = new Bundle();
    // Boolean to hide the thumbnails when the Scrolling images is embedded in the item activity
    bundle.putBoolean(ScrollingTradeImagesFragment.INTENT_BOOL_EMBEDDED, false);
    // Pass the object to the Scrolling images fragment
    bundle.putParcelable(INTENT_KEY_TRADE_OBJECT, Parcels.wrap(mTradeItem));
    ScrollingTradeImagesFragment fragment = new ScrollingTradeImagesFragment();
    FragmentManager fm = getSupportFragmentManager();

    //-------Crash happens here-------//
    fragment.setArguments(bundle);
    fragmentTransaction.add(R.id.scrollable_image_container, fragment);
    fragmentTransaction.commit();
  }

네트워크 호출이 완료되었을 때 실행되는 메소드 :

      @Override
  public void populateItemViews(final TradeItem aTradeItem) {
    mTradeItem = aTradeItem;
    // Do some stuff here that is irrelevant
    configureImageScroller();
    // Do some other stuff here that is irrelevant
  }

이 충돌을 방지하는 가장 좋은 방법은 무엇입니까?

편집하다:

Stacktrace :

Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
   at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
   at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
   at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638)
   at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
   at com.bidorbuy.app.item.ItemActivity.configureImageScroller(ItemActivity.java:112)
   at com.bidorbuy.app.item.ItemActivity.populateItemViews(ItemActivity.java:233)
   at com.bidorbuy.app.item.ItemPresenter.handleNetworkResponse(ItemPresenter.java:37)
   at com.bidorbuy.app.network.NetworkManager$3.onResponse(NetworkManager.java:422)
   at com.bidorbuy.app.network.NetworkManager$3.onResponse(NetworkManager.java:419)
   at com.bidorbuy.app.network.volley.BobeRequest.deliverResponse(BobeRequest.java:127)
   at com.bidorbuy.app.network.volley.BobeRequest.deliverResponse(BobeRequest.java:26)
   at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
   at android.os.Handler.handleCallback(Handler.java:810)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:189)
   at android.app.ActivityThread.main(ActivityThread.java:5529)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
마이클 스피 친

가장 큰 문제는 요청을 취소하지 않았다는 것입니다. 귀하의 경우에는 onPause방법 이어야합니다 . 이를 피하면 최소한 코드에 주요 오류를 가져올 수 있습니다.

  • 동일한 요청 이상에 병렬로 실행됩니다. 예를 들어 onResume에서 요청을 실행하고 네트워크 연결 상태가 좋지 않은 다음 홈 버튼을 눌러 애플리케이션을 종료 / 돌아 가면 onResume이 여러 번 호출되고 각 요청에 시간이 걸리기 때문에 여러 동일한 요청이 실행됩니다.

  • 불일치 상태 Activity(또는 같은 다른 구성 요소 Fragment) 에서 "onComplete"콜백을 실행 합니다. 요청을 실행 onResume한 다음 애플리케이션을 종료 한다고 가정합니다 . onPause그리고 onStop호출됩니다. onSaveInstanceState호출하고 아마도 onDestroy너무. 그런 다음 요청이 성공 응답을 제공하고 이미 중지되고 저장된 활동에 대해 일부 조각을 실행하려고합니다. 따라서 예외가 있습니다.

해결 방법 onPause에서 요청을 취소하기 만하면됩니다. 결국 콜백이 호출되기 전에 애플리케이션을 종료하면 일관성없는 상태의 호출을 방지 할 수 있습니다. 또한 예를 들어 응용 프로그램에 재 입력하는 경우 동일한 요청이 늘어나는 것을 방지합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

화면 잠금에 대한 응답으로 조각을 추가 할 때 IllegalStateException 발생

분류에서Dev

로컬 데이터를 사용할 때 jqxChart에서 네트워크 오류 발생

분류에서Dev

TransactionInterceptor를 사용하여 java.lang.IllegalStateException 발생 : 비 반응 형 반환 유형에 반응 트랜잭션을 적용 할 수 없음 : void

분류에서Dev

Wikipedia의 공개 예시 데이터 세트에 NTILE 함수를 사용할 때 Bigquery에서 '너무 큰 오류 응답'이 발생 함

분류에서Dev

느린 네트워크를 통해 대용량 파일을 다운로드 할 때 StorageException 발생

분류에서Dev

RestSharp 응답 각 소켓 주소 (프로토콜 / 네트워크 주소 / 포트)는 일반적으로 한 번만 사용할 수 있습니다.

분류에서Dev

MediaPlayer를 시작할 때 IllegalStateException 발생

분류에서Dev

실제 Android 기기에서 Flutter에 네트워크 이미지를 추가 할 때 소켓 예외 발생

분류에서Dev

msi 컴퓨터에 DEbian 8.2 (Jessie)를 설치할 때 발생하는 문제 (네트워크 설치 중)

분류에서Dev

컬렉션에서 개체를 제거 할 때 IllegalStateException 발생

분류에서Dev

캐럿 confusionMatrix에 추가 인수를 적용 할 때 오류 발생

분류에서Dev

Virtualbox에서 호스트 전용 네트워크를 설정하려고 시도한 후 Ubuntu 게스트에서 네트워크에 연결할 수 없음

분류에서Dev

네트워크 공유의 저장소에서 git 후크를 실행할 때 : 어떤 바이너리가 사용됩니까?

분류에서Dev

네트워크 공유의 저장소에서 git 후크를 실행할 때 : 어떤 바이너리가 사용됩니까?

분류에서Dev

#값! 워크 시트에서 UDF 함수를 호출 할 때 오류 발생

분류에서Dev

YUI 자바 스크립트 압축기를 사용할 때 후행 쉼표에 컴파일 오류가 발생할 수 있습니까?

분류에서Dev

네트워크에 공유 (상수)`텐서`가 필요할 때`DataParallel` 사용

분류에서Dev

조각에서 textView 텍스트를 변경하려고 할 때 NullPointerException 발생

분류에서Dev

java.lang.IllegalStateException : or.apache.catalina.connector.ResponseFacade에서 응답이 커밋 된 후 sendRedirect ()를 호출 할 수 없습니다.

분류에서Dev

React Native : iPhone 4G / LTE 개인용 핫스팟에서 공유 된 네트워크를 사용할 때만 "네트워크 요청 실패"

분류에서Dev

Edge F12 네트워크 탭을 사용할 때 "네트워크 수집 에이전트를 시작하지 못했습니다."

분류에서Dev

RestSharp를 사용할 때 POST에서 MethodNotFound가 표시되지만 응답이 GET이라고 생각합니까?

분류에서Dev

RestSharp를 사용할 때 POST에서 MethodNotFound가 표시되지만 응답이 GET이라고 생각합니까?

분류에서Dev

업데이트 후 네트워크에 연결할 수 없음

분류에서Dev

AJAX GET 응답 (JSON)의 일부를 문자열 변수에 저장할 때 발생하는 문제

분류에서Dev

Glass에서 타임 라인 항목을 공유 할 때 IllegalStateException 발생

분류에서Dev

조각에 setExitTransition을 사용할 때 NullPointerException 발생

분류에서Dev

Linq를 List에 적용 할 때 오류 발생

분류에서Dev

ImageCapture 후 조각을 중지 할 때 CameraX에서 예외가 발생 함

Related 관련 기사

  1. 1

    화면 잠금에 대한 응답으로 조각을 추가 할 때 IllegalStateException 발생

  2. 2

    로컬 데이터를 사용할 때 jqxChart에서 네트워크 오류 발생

  3. 3

    TransactionInterceptor를 사용하여 java.lang.IllegalStateException 발생 : 비 반응 형 반환 유형에 반응 트랜잭션을 적용 할 수 없음 : void

  4. 4

    Wikipedia의 공개 예시 데이터 세트에 NTILE 함수를 사용할 때 Bigquery에서 '너무 큰 오류 응답'이 발생 함

  5. 5

    느린 네트워크를 통해 대용량 파일을 다운로드 할 때 StorageException 발생

  6. 6

    RestSharp 응답 각 소켓 주소 (프로토콜 / 네트워크 주소 / 포트)는 일반적으로 한 번만 사용할 수 있습니다.

  7. 7

    MediaPlayer를 시작할 때 IllegalStateException 발생

  8. 8

    실제 Android 기기에서 Flutter에 네트워크 이미지를 추가 할 때 소켓 예외 발생

  9. 9

    msi 컴퓨터에 DEbian 8.2 (Jessie)를 설치할 때 발생하는 문제 (네트워크 설치 중)

  10. 10

    컬렉션에서 개체를 제거 할 때 IllegalStateException 발생

  11. 11

    캐럿 confusionMatrix에 추가 인수를 적용 할 때 오류 발생

  12. 12

    Virtualbox에서 호스트 전용 네트워크를 설정하려고 시도한 후 Ubuntu 게스트에서 네트워크에 연결할 수 없음

  13. 13

    네트워크 공유의 저장소에서 git 후크를 실행할 때 : 어떤 바이너리가 사용됩니까?

  14. 14

    네트워크 공유의 저장소에서 git 후크를 실행할 때 : 어떤 바이너리가 사용됩니까?

  15. 15

    #값! 워크 시트에서 UDF 함수를 호출 할 때 오류 발생

  16. 16

    YUI 자바 스크립트 압축기를 사용할 때 후행 쉼표에 컴파일 오류가 발생할 수 있습니까?

  17. 17

    네트워크에 공유 (상수)`텐서`가 필요할 때`DataParallel` 사용

  18. 18

    조각에서 textView 텍스트를 변경하려고 할 때 NullPointerException 발생

  19. 19

    java.lang.IllegalStateException : or.apache.catalina.connector.ResponseFacade에서 응답이 커밋 된 후 sendRedirect ()를 호출 할 수 없습니다.

  20. 20

    React Native : iPhone 4G / LTE 개인용 핫스팟에서 공유 된 네트워크를 사용할 때만 "네트워크 요청 실패"

  21. 21

    Edge F12 네트워크 탭을 사용할 때 "네트워크 수집 에이전트를 시작하지 못했습니다."

  22. 22

    RestSharp를 사용할 때 POST에서 MethodNotFound가 표시되지만 응답이 GET이라고 생각합니까?

  23. 23

    RestSharp를 사용할 때 POST에서 MethodNotFound가 표시되지만 응답이 GET이라고 생각합니까?

  24. 24

    업데이트 후 네트워크에 연결할 수 없음

  25. 25

    AJAX GET 응답 (JSON)의 일부를 문자열 변수에 저장할 때 발생하는 문제

  26. 26

    Glass에서 타임 라인 항목을 공유 할 때 IllegalStateException 발생

  27. 27

    조각에 setExitTransition을 사용할 때 NullPointerException 발생

  28. 28

    Linq를 List에 적용 할 때 오류 발생

  29. 29

    ImageCapture 후 조각을 중지 할 때 CameraX에서 예외가 발생 함

뜨겁다태그

보관