2011-03-26 9 views
0

나는 안드로이드의 신작이며, 안드로이드 서비스에 대해 혼란 스럽다. 내 이해에 따르면, UI 관련 코드는 액티비티 내에서 실행되고 백그라운드 작업은 내 스레드에서 실행되므로 서비스 사용은 어떻게됩니까? 그것은 내가 뭔가를 할 수있는 활동과 스레드를 사용할 수있는 것 같습니다.android 서비스를 이해하는 방법?

답변

5

배경 작업은 스레드에서 실행할 수 있으며 스레드에서 실행해야합니다. 그러나 해당 작업이 서비스의 일부가 아닌 경우 OS의 모든 활동이 표시되지 않으면 경고없이 해당 스레드가 중단 될 수 있습니다.

예를 들어 MP3 플레이어 앱을 작성하는 경우 사용자가 홈 화면으로 돌아 가면 음악이 멈추지 않을 수도 있습니다. 따라서 실제로 음악을 재생하는 서비스를 만든 다음 OS가 서비스가 실행중인 경우 앱의 프로세스가 종료되는 것을 피하려고합니다.

서비스를 사용하여 다른 응용 프로그램에 기능을 제공 할 수도 있습니다. 이 경우 앱의 프로세스는 다른 일부 앱이 서비스를 사용하기를 원할 때 요청에 따라 시작되며 다른 앱이 서비스를 마친 후에 OS에 의해 중지 될 수 있습니다.

자세한 내용은 Service Documentation을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 하나의 작업에서 스레드를 시작한 다음 사용자가 홈 화면으로 돌아 가면 스레드가 실행을 멈 춥니 다. –

+0

스레드는 잠시 동안 계속 실행될 수 있지만 메모리를 회수하려는 경우 OS는 경고없이 응용 프로그램을 강제 종료합니다. 가시적 인 활동과 실행중인 서비스가 없으므로 운영 체제는 프로세스를 응용 프로그램의 캐시로 간주하며 아무도 돌보지 않고 제거 할 수 있습니다. 자세한 내용은 http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html을 참조하십시오. –

관련 문제