3. 가장 흔한 실수.
finish하면 끝일 것이라는 생각.
finish 호출이 되면 여기서 프로그램 flow가 마쳐질 것이라
예상하는 경우가 많습니다.
그래서 SummarizeCurrentEvent는 finish 호출 뒤에 수행이
되지 않을 것이라 생각을 합니다.
결론은 그렇지 않습니다.
만약 finish 후 flow를 마치고자 하면 return을 명시하세요.
6. 미완성 결론
Activity.finish는 바로 해당 Activity를 종료시키는 exit와 같은 신호가 아닙니다.
안드로이드 시스템에게 본 Activity에 대해서 사용자가 제어권이 풀리는 시점 (주어진 작업을 마
치는 시점)에 종료를 위한 준비를 진행하라고 신호를 주는 것입니다.
그러고 나면, 시스템은 해당 finish가 호출되는 시점에 현재 진행 예약 중인 작업들을 마친 뒤에
종료 준비 작업을 할 수 있도록 처리를 합니다. 이 처리라고 하는 부분은 메모리 GC 대상으로 표
시를 하는 것까지 포함되는 것 같습니다. 그리고 이 신호는 Activity 내 message queue에 종료
신호를 등록하는 형태로 처리되는 것으로 예상됩니다.
그리고 실제로 메모리에서 지워지는 것은 언제인지는 보장은 못 합니다. 이건 전능한 안드로이
드 시스템이 알아서 진행할 것입니다.
이번 결론은 내부 소스 코드를 보지 못해서, 현재까지 통용되고 있는 데이터들을 바탕으로 추측한
결과입니다. 이에 따라서 본 결론에 대한 신빙성은 추가적으로 검증 되어야 합니다.