[안드로이드] 컴포넌트 종료하기

반응형



이전 글 : 컴포넌트 시작하기 에 이어

이번에는 컴포넌트의 종료하기에 관한 글입니다.

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



컴포넌트 종료하기

컨텐츠 프로바이더는 컨텐츠 리졸버의 요청에 응답하는 동안에만 활성화 되고, 브로드캐스트 리시버도 브로드캐스트 메시지에 응답하는 동안만 활성화 되어 있기 때문에 이 둘 컴포넌트는 명시적으로 종료할 필요가 없습니다.


하지만 액티비티는 사용자 인터페이스를 제공하는 특성상 오랜시간동안 활성화되어 있어야 하고, 심지어는 사용되지 않는(idle) 상태에서도 사용자가 사용할 가능성이 있다면 활성화 상태로 남아있어야 합니다.
서비스 또한 비슷한 형태로 오랫동안 실행상태로 남죠.

따라서 명시적으로 액티비티와 서비스를 종료하기 위해 메소드가 제공됩니다.


액티비티 종료하기

액티비티는 finish() 메소드를 호출하여 스스로 종료하거나,
finishActivity() 메소드를 호출하여 다른 액티비티 ( startActivityForResult() 를 통해 시작된 액티비티만 해당 ) 도 종료 할 수 있습니다.



서비스 종료하기

서비스는 stopSelf() 메소드 호출이나 Context.stopService() 메소드를 호출하여 종료할 수 있습니다.





컴포넌트는 특성상 시스템에 의해 강제종료 될 수가 있습니다.
특히 다른 컴포넌트를 실행 시 메모리가 부족할 때 가장 오래도록 사용되지 않은 컴포넌트부터 강제종료를 하게되죠. 따라서, 컴포넌트의 생명주기 메소드를 잘 활용해야 될 것입니다.




반응형

댓글

Designed by JB FACTORY