활동이 파괴되었으며 포함 된 조각에서 이벤트를 전달할 수 없습니다.

Shadox

사용자 등록을위한 활동이 있습니다. 어느 시점에서 그 활동에 등록 양식이있는 조각이 있습니다. 사용자가 REGISTER 버튼을 클릭하면 이와 같은 이벤트 버스와 함께 이벤트가 전달됩니다.

에서는 RegistrationFragment (포함 RegistrationActivity )

EventBus.getDefault().post(new RegistrationSuccessfulEvent());

에서 RegistrationActivity

public void onEvent(RegistrationSuccessfulEvent event) {
    startActivity(new Intent(this, MainActivity.class));
}

이 예외가 발생합니다

Could not dispatch event: class com.myapp.RegistrationSuccessfulEvent to subscribing class class com.myapp.RegistrationActivity ... 
java.lang.IllegalStateException: Activity has been destroyed

활동이 파괴되는 이유는 무엇입니까? 활동 A에 프래그먼트 F가 포함되어있는 경우 F가 계속 실행 중일 때 해당 활동이 종료 될 수 있습니까? F가 살아 있거나 다른 포함 된 조각이 실행 상태에있는 동안 A는 살아 있다고 생각했습니다. 활동 조각 커플 링 수명주기에 대해 꽤 혼란 스럽습니다.

Natario

"살아있다"는 것이 "생성되었지만 아직 파괴되지는 않았다"를 의미한다고 가정하면, 활동 라이프 사이클은 내부 조각에 의존하지 않지만 그 반대가있을 수 있습니다.

그 시점에서 조각이 파괴되었을 수 있지만 (생명주기 의미에서) 아직 가비지 수집되지 않은 Java 클래스의 인스턴스입니다. 그렇다면 여전히 Event. 예를 들어 엄격한 의미에서 Activity has been destroyed인스턴스가 수집되었다는 의미가 아니라 파괴 프로세스를 거쳤을뿐입니다.

프래그먼트에서 setRetainInstance사용 하여 활동이 다시 생성되는 동안 프래그먼트 인스턴스를 활성 상태로 유지할 수도 있습니다.

어쨌든 RegistrationActivity가 파괴되는 이유를 알기 위해서는 더 많은 코드가 필요합니다. 방향 변경 또는 다른 호출과 같은 구성 변경 일 수 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각도 js : 컨트롤러에서 포함 된 페이지의 html로 값을 전달할 수 없습니다.

분류에서Dev

조각에서 다른 활동으로 이동할 수 없습니까?

분류에서Dev

파괴 된 Vue 컴포넌트에 대한 Mixin이 여전히 이벤트를 수신하고 있습니다.

분류에서Dev

함수에서 반환 된 포인터를 참조로 전달할 수 없습니다.

분류에서Dev

매우 간단한 이벤트 리스너에서 변수를 함수에 전달할 수 없습니다.

분류에서Dev

InitiateShutdown, 함수에 전달 된 값을 이해할 수 없습니다.

분류에서Dev

putExtra로 활동에 전달 된 데이터를 검색 할 수 없습니까?

분류에서Dev

Volley Library에서 Intent를 사용하여 조각에서 다음 활동으로 이동할 수 없습니다.

분류에서Dev

Access에서 이벤트 기반 데이터 매크로가 포함 된 파일을 읽을 수 없습니다.

분류에서Dev

탭 활동에 사용할 조각을 포함 할 수 없습니다. FragmentPagerAdapter를 사용한 다양한 조각

분류에서Dev

포함 된 PHP 파일에서 함수를 호출 할 수 없습니다.

분류에서Dev

활동에서 조각으로 이동할 수 없음

분류에서Dev

함수에 인수로 전달 된 포인터 변수를 수정할 수 없습니다.

분류에서Dev

이름에 \ r이 포함 된 파일을 이동하거나 삭제할 수 없습니다.

분류에서Dev

이름에 \ r이 포함 된 파일을 이동하거나 삭제할 수 없습니다.

분류에서Dev

Windows OS 파티션이 포맷되었으며 설치를 계속할 수 없습니다.

분류에서Dev

Parcelable 개체 ArrayList를 조각 활동에 전달할 수 없습니다.

분류에서Dev

Activity에서 조각으로 전달되는 번들 String 데이터를 사용하여 textView에서 텍스트를 설정할 수 없습니다.

분류에서Dev

동적으로 생성 된 앵커 태그에 클릭 이벤트를 추가 할 수 없습니다.

분류에서Dev

Azure 릴리스 파이프 라인의 이전 단계에서 전달 된 변수를 활용할 수 없습니다.

분류에서Dev

추가 된 요소는 on 이벤트와 함께 각 메소드를 사용할 수 없습니다.

분류에서Dev

QTest는 하위 위젯에 이벤트를 전달할 수 없습니다.

분류에서Dev

변수에 전달 된 함수를 실행할 수없는 것 같습니다.

분류에서Dev

@mixin을 포함하면 이전에 전달 된 변수를 참조합니다.

분류에서Dev

다른 이벤트의 한 이벤트에 대해 작성된 JS 함수를 호출 할 수 있습니까?

분류에서Dev

컴파일러는 swprintf 함수 인 winapi에 전달 된 인수를 변환 할 수 없습니다.

분류에서Dev

Tkinter에서 이벤트를 사용할 때 어떻게 다른 변수를 이벤트 함수에 전달할 수 있습니까?

분류에서Dev

두 번째 활동에 이미지를 전달할 수 없습니다.

분류에서Dev

Windows 8이 포함 된 Acer Aspire에 ArchLinux를 설치할 수 없습니다.

Related 관련 기사

  1. 1

    각도 js : 컨트롤러에서 포함 된 페이지의 html로 값을 전달할 수 없습니다.

  2. 2

    조각에서 다른 활동으로 이동할 수 없습니까?

  3. 3

    파괴 된 Vue 컴포넌트에 대한 Mixin이 여전히 이벤트를 수신하고 있습니다.

  4. 4

    함수에서 반환 된 포인터를 참조로 전달할 수 없습니다.

  5. 5

    매우 간단한 이벤트 리스너에서 변수를 함수에 전달할 수 없습니다.

  6. 6

    InitiateShutdown, 함수에 전달 된 값을 이해할 수 없습니다.

  7. 7

    putExtra로 활동에 전달 된 데이터를 검색 할 수 없습니까?

  8. 8

    Volley Library에서 Intent를 사용하여 조각에서 다음 활동으로 이동할 수 없습니다.

  9. 9

    Access에서 이벤트 기반 데이터 매크로가 포함 된 파일을 읽을 수 없습니다.

  10. 10

    탭 활동에 사용할 조각을 포함 할 수 없습니다. FragmentPagerAdapter를 사용한 다양한 조각

  11. 11

    포함 된 PHP 파일에서 함수를 호출 할 수 없습니다.

  12. 12

    활동에서 조각으로 이동할 수 없음

  13. 13

    함수에 인수로 전달 된 포인터 변수를 수정할 수 없습니다.

  14. 14

    이름에 \ r이 포함 된 파일을 이동하거나 삭제할 수 없습니다.

  15. 15

    이름에 \ r이 포함 된 파일을 이동하거나 삭제할 수 없습니다.

  16. 16

    Windows OS 파티션이 포맷되었으며 설치를 계속할 수 없습니다.

  17. 17

    Parcelable 개체 ArrayList를 조각 활동에 전달할 수 없습니다.

  18. 18

    Activity에서 조각으로 전달되는 번들 String 데이터를 사용하여 textView에서 텍스트를 설정할 수 없습니다.

  19. 19

    동적으로 생성 된 앵커 태그에 클릭 이벤트를 추가 할 수 없습니다.

  20. 20

    Azure 릴리스 파이프 라인의 이전 단계에서 전달 된 변수를 활용할 수 없습니다.

  21. 21

    추가 된 요소는 on 이벤트와 함께 각 메소드를 사용할 수 없습니다.

  22. 22

    QTest는 하위 위젯에 이벤트를 전달할 수 없습니다.

  23. 23

    변수에 전달 된 함수를 실행할 수없는 것 같습니다.

  24. 24

    @mixin을 포함하면 이전에 전달 된 변수를 참조합니다.

  25. 25

    다른 이벤트의 한 이벤트에 대해 작성된 JS 함수를 호출 할 수 있습니까?

  26. 26

    컴파일러는 swprintf 함수 인 winapi에 전달 된 인수를 변환 할 수 없습니다.

  27. 27

    Tkinter에서 이벤트를 사용할 때 어떻게 다른 변수를 이벤트 함수에 전달할 수 있습니까?

  28. 28

    두 번째 활동에 이미지를 전달할 수 없습니다.

  29. 29

    Windows 8이 포함 된 Acer Aspire에 ArchLinux를 설치할 수 없습니다.

뜨겁다태그

보관