저번 금요일날 Service관련 글을 올렸습니다.
의문나는 사항을 정리했네요 ..일단 감사드리며.


RemoteBindService를 실행중에 또 하나 의문사항이 생기네요.
아마 간단한 개념 문제일것 같기도..



Api demo

BindSerivce
Unbind Service
Kill Process

BindService를 클릭후 remote service와 연결되는것을 확인하고

Kill Process 하면 해당 Service가 Kill되는되며,5000ms후에 다시 Service가 재기동되는것으로 보이네요..

Kill Process가 실행되고 나서 자동으로 서비스가 기동되는 이유가 먼가요?
기동시 첨부한 그림처럼 log가 나옵니다.

Main Service (ServiceConnection) 생성후 Kill Process가 호출될때 onServiceDisconnected 바로 호출되는것으로 보이네요..


public void onServiceDisconnected(ComponentName className) {
            // This is called when the connection with the service has been
            // unexpectedly disconnected -- that is, its process crashed.
}

 

1)
onServiceDisconnected  비정상적인 Service가 끊길때 호출된다고 ..나오며,
 Kill Process가될때 이것이 즉 비정상적인? 직접 외부에서  PID를 Kill하면 발생하는것으로 보이네요..
그리고 로그상에 보면  Service가 백그라운 Looping되는것이 보이네요..
Kill 당시 내용을 올립니다.

2)Callback 함수사용? 이유?
   Callback함수가 아니더라도 ..
    bindservice로 호출 + aidl로 해당 remote method를 호출 할수 있습니다.
   혹시...
   Callback 함수 사용시 Handler를 이용 service를 thread처럼 사용하여 main thread와 분리하여
   service가 속도가 늘여지거나 문제가 생길때 Main thread가 멈추지 않도록 background로 처리하도록 하기 위해서 인지요...


오늘도 두서 없이 질문을 올렸습니다.


감사합니다..