안드로이드 개발 질문/답변
(글 수 45,052)
A -> B -> C 순으로 액티비티를 실행한다고 할 때
C에서 D를 추가하는 시점에 A, B, C 를 모두 finish 할 수 있는
가장 효과적인 방법은 무엇인가요?
2013.02.14 10:14:24
스택 구조는 로그인 기능과 글로벌한 로그아웃 기능을 가진 앱이라면 꼭 필요할 수 밖에 없을 것 같습니다.
startActivityForResult 로 처리하는 경우에는 액티비티 플로우가 한가지가 아닌 여러 상황일 경우
코드가 복잡해지고 연쇄적인 처리만 가능하기 때문에 생기는 제약이 있는 것 같습니다.
LocalBroadcast를 사용하거나 모든 액티비티가 상속받는 베이스 엑티비티를 하나 둬서
arraylist에 직접 관리하는 방법 정도가 있을 것 같은데
LocalBroadcast는 상황별로 종료시킬 액티비티를 명확하게 아는 경우에만 사용할 수 있을것이고,
arraylist에 관리하는 것은 다중 상속 불가능한 경우의 문제와
스택 관리에 허점이 있을 경우 메모리 누수등의 문제가 있을 것으로 예상됩니다.
startActivityForResult 로 실행했다가 onActivityResult에서 연쇄적으로 finish 해주거나
LocalBroadcastManager 사용해서 onReceived에서 finish 해주거나
스택 구조가 꼭 그렇게 되어야하는지 다시 고민해볼 것 같습니다.