Service 를 만들고 그것에 aidl 로 bind 하는 앱을 만들고 있던 중, 새로운 사실을 알아버렸습니다.
Service 를 가진 process 가 crash 되거나, process kill 되는 경우, bind 한 process 의 ServiceConnection 의 onServiceDisconnected() 함수가 호출되게 됩니다. 요건 당연해 보이죠?
하지만 여기서 주의할 것은!!!!
이때 해당 ServiceConnection 은 완전 종료된 것이 아니라, crash 되거나 process kill 된 service 가 되살아나는경우 ( 해당 process 만 살아나도 ) 자동으로 onServiceConnected() 불리며 연결이 됩니다.
이 점을 항상 keep in mind 한 상태에서 설계를 해야겠습니다.
참조
http://developer.android.com/reference/android/content/ServiceConnection.html#onServiceDisconnected(android.content.ComponentName)
Called when a connection to the Service has been lost. This typically happens when the process hosting the service has crashed or been killed. This does not remove the ServiceConnection itself -- this binding to the service will remain active, and you will receive a call to onServiceConnected(ComponentName, IBinder) when the Service is next running.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Bluetooth 관련 IRCOMM, RFCOMM, SDP 용어 정의. (0) | 2012.05.11 |
---|---|
[Android/안드로이드] Floating Context Menu 사용하기. (0) | 2012.05.11 |
[Android/안드로이드] Parcelable class aidl 로 전달하기. (0) | 2012.05.07 |
[Android/안드로이드] JavaDoc 쓰는 방법. (0) | 2012.05.07 |
[android] SQLiteOpenHelper 의 Version 사용시 주의사항. (0) | 2012.05.07 |
댓글