태스크
[Do it! 안드로이드 앱 프로그래밍 #17] 서비스
17 서비스 앱이 실행되어 있다고 해서 항상 화면이 보이는 것은 아니다. 예를 들어, 카카오톡은 앱이 실행되어 있지 않거나 화면이 사용자에게 보이지 않는 상태에서도 다른 사람이 보낸 메시지를 받을 수 있다. 이는 화면 없이 백그라운드에서 실행되는 서비스(Service)가 있기 때문이다. 화면 뒤의 공간을 뒷단 또는 백그라운드라고 부른다. 서비스도 앱의 구성 요소이기 때문에 매니페스트 파일에 꼭 등록해야 한다. 17-1 서비스의 실행 원리와 역할 서비스를 실행하려면 메인 액티비티에서 startService 메서드를 호출하면 된다. 서비스는 실행된 상태를 계속 유지하기 위해 서비스가 비정상적으로 종료되더라도 시스템이 자동으로 재실행한다. 서비스를 시작시키기 위해 startService 메서드를 호출할 때 인..
[Do it! 안드로이드 앱 프로그래밍 #10] 태스크 관리, 액티비티 수명주기 이해하기
10-1 태스크 관리 이해하기 앱을 실행하면 그 앱은 하나의 프로세스 위에서 동작한다. 예전 글에서 앱에서 시스템으로 인텐트를 보내는 방법으로 전화 앱을 띄워보았다. 이렇게 하면 두 앱은 별도의 프로세스로 동작하게 된다. 그런데 프로세스는 독립적인 상자와 같아서 프로세스 간의 정보 공유는 어렵다. 그래서 앱에는 태스크(Task)라는 것이 만들어지고, 태스크가 전화 앱에서 [BACK] 키를 누르면 다시 원래의 앱 화면으로 돌아올 수 있게 해준다. 10-1-1 프로세스와 태스크 시스템은 알아서 태스크를 관리하지만 직접 제어해야 하는 경우도 생긴다. 매니페스트 파일(AndroidManifest.xml)에 액티비티를 등록할 때 태스크도 함께 설정할 수 있다. ▼ 액티비티의 launchMode 속성을 추가하고 값..