android) 수명주기, 서비스, 브로드캐스트 수신자

수명주기

액티비티는 처음 실행될 때 메모리에 만들어지는 과정부터 시작해 실행과 중지 그리고 메모리에서 해제되는 여러 과정을 상태 정보로 가지고 있게 되고  이러한 상태 정보는 시스템에서 관리하면서 각각의 상태에 해당하는 메소드를 자동으로 호출하게 됩니다.

예를들어, 액티비티에 기본으로 만들어져 있는 onCreate() 메소드는 액티비티가 만들어질 때 시스템에서 자동으로 호출하는 메소드입니다.

액티비티의 대표적인 상태 정보는 Running, Paused, Stopped 상태가 있다. 이렇게 액티비티의 상태 정보가 변화하는 것을 액티비티의 '수명주기(Life Cycle)'라 하며 액티비티가 처음 만들어진 후 없어 질때까지 상태가 변화하면서 각각에 해당하는 메소드가 자동으로 호출합니다.

서비스

안드로이드에서 서비스는 백그라운드에서 실행되는 프로세스를 의미합니다.
액티비티와 다른 점은 화면이 없다는 것이다. 서비스도 애플리케이션의 구성요소이므로 새로 만든 후에는 항상 매니페스트 파일에 등록해야 합니다.

서비스는 Service 클래스를 상속하여 정의할 수 있습니다. 서비스의 onCreate() 메소드는 서비스가 처음 만들어질 때 호출됩니다. 액티비티의 onCreate() 메소드와 다른 점은 파라미터로 전달되는 정보가 없다. 화면을 구성하는 리소스가 없기 때문입니다.

서비스 클래스는 다른 구성요소와의 유기적인 연결을 위해 바인딩 될 수 있는데 이를 위해 onBind() 메소드를 재정의해야 한다. 서비스를 시작하는 코드는 인텐트에 Service 클래스 인스턴스를 지정한 후 startService() 메소드를 호출합니다.

브로드캐스트 수신자

브로드캐스팅(Broadcasting)이란 메시지를 여러 객체에게 전달하는 방법을 의미한다.  브로드캐스팅 미세지는 브로드캐스트 수신자라는 애플리케이션 구성요소를 이용해 받을 수 있습니다. 새로운 브로드캐스트 수신자를 만들게되면 매니페스트 파일에 등록해야 한다. 예외적으로 매니페스트 파일에 등록하는 방식이 아니라 자바 코드 상에서 registerReceiver()라는 메소드를 이용해 등록 할 수 있습니다.

브로드캐스트 수신자는 그 안에  onReceive() 메소드를 정의해야하는데 이 메소드는 원하는 브로드캐스트 메시지가 도착하면 자동으로 호출됩니다. 수신하고 싶은 메시지가 있다면 그 메시지는 인텐트 필터를 이용해 등록합니다. 즉, 브로드캐스트 메시지도 인텐트에 정보를 넣어 전달하는 방식을 사용하므로 이 인텐트를 받고 싶다면 인텐트 필터를 이용해 시스템에 알려주어야 합니다.

댓글 없음:

Powered by Blogger.