programing

액티비티는?finish()는 Android에서 작동합니까?

copyandpastes 2023. 2. 1. 22:20
반응형

액티비티는?finish()는 Android에서 작동합니까?

누군가 어떤 일이 일어나는지 설명해 줄 수 있나요?Activity그것을 호출하다finish()방법?

즉시 종료합니까, 아니면 호출된 기능을 완료합니까?

즉시 종료하거나 호출된 기능을 완료합니까?

가 호출한 메서드finish()이 완료됩니다.finish()조작은 Android로 복귀할 때까지 시작되지 않습니다.

라이프 사이클의 모든 이벤트와 같은onCreate,onResume,onPause....onDestroy항상 단일 스레드인 "기본 스레드"에서 호출됩니다.

즉, 이 스레드는 모든 액티비티 이벤트가 게시되는 큐에 의해 백업됩니다.이 스레드는 이러한 모든 이벤트를 삽입 순서대로 실행할 수 있습니다.

전화하시는 경우finish()라이프 사이클의 콜백 중 하나에서onCreate()...이 큐에 "message" 메시지가 추가되지만 현재 실행 중인 메서드가 다음과 같이 반환될 때까지 스레드는 "message" 액션을 선택하여 실행할 수 없습니다.스레드가 현재 작업에서 해방됩니다.

ondestroy()는, 액티비티가 파괴되기 전에 수신하는 최종 콜입니다.

이 문제는 액티비티가 종료 중이기 때문에 발생할 수 있습니다(누군가 전화했습니다).finish()또는 시스템이 공간을 절약하기 위해 이 액티비티 인스턴스를 일시적으로 파기하기 때문입니다.이 두 가지 시나리오를 구별할 수 있습니다.isFinishing()방법.

액티비티 A와 B가 2개 있는 경우.플로우는 A >B에서 B =A 콜로 되어 있습니다.finish().

그리고나서,

전화하신 방법finish()from은 마크의 설명대로 실행됩니다.콜백의 흐름은 다음과 같습니다.

  1. onPause()activity A
  2. onRestart()>onStart()>onResume()액티비티 B의
  3. 그리고 진정한 차이가 있다.전화하지 않은 경우finish()부터activity A;만onStop()Activity A를 여기로 호출합니다.이 사건에서 우리가 전화한 곳은finish()부터Activity A; 그래서onStop()그리고.onDestroy()둘 다 요구될 것이다activity A.

언급URL : https://stackoverflow.com/questions/2590947/how-does-activity-finish-work-in-android

반응형