2012-10-09 7 views
0

기본적으로 이론적 인 문제가 있습니다. 내가 A와 B의 두 가지 활동을한다고 가정 해 봅시다. A를 사용하여 활동 B를 Intent를 사용하여 호출하지만 A를 끝내지는 않습니다. 그래서 기본적으로는 계속됩니다(). 어떤 일을 마친 후 나는 활동 B를 마쳤습니다. 그래서 이제 활동 A가 앞으로 올 것입니다. 내 질문은 finish() 메서드 다음에 일어나는 일이다. finish() 메서드를 실행 한 후에 Activity B가 스택에 있지만 액세스 할 수 없다는 말을 들었기 때문이다. 나는 그것이 일어난다면 기억의 낭비가 아니라고 혼란 스럽다. 또는 내가 틀렸다면 적절한 방법으로 안내해주십시오.활동 메모리 관리

답변

1

100 % 질문에 대한 답변이 확실하지 않습니다. 하지만 당신의 작업에서 활동 스택은 다음과 같습니다 있도록

당신은 ActivityA을 시작 ...의 시도하자 :
ActivityA (shown to user) 

지금 ActivityA이 ActivityB 시작하지만 자신을 완료되지 않습니다. ActivityA가 일시 중지되고 ActivityB가 사용자에게 표시됩니다. 활동 스택은 다음과 같습니다

ActivityB (shown to user) 
ActivityA (paused) 

이제 사용자는 ActivityB에서 몇 가지 물건을 수행하고 다음 ActivityB 자체에 finish()를 호출합니다. 이제 ActivityA가 사용자에게 표시됩니다. 활동 스택은 다음과 같습니다.

ActivityA (shown to user) 

이 시점에서 ActivityB가 완료되고 시스템에서 제거 할 수 있습니다. Android는 ActivityB에 onDestroy()을 호출하고 가비지 컬렉터는 결국 힙에서이를 제거합니다. 여기에는 "기억 낭비"가 없습니다.

질문을 잘못 해석 한 경우 의견을 말하면 그에 따라 답변을 수정하겠습니다.

+0

귀하는 제 질문에 대한 권리를 가로 채 셨습니다. Thx – MGDroid

+0

http://stackoverflow.com/questions/12833854/fragment-and-parent-activity-life-cycle-together 이것은 내 바보 같은 질문입니다. 당신이 도울 수 있기를 바랍니다. – MGDroid