안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..
안드로이드 열공 하는 횐입니다..
지금 현재 한 서비스(S)를 두고 A라는 메인 액티비티가 onCreate될 서비스를 실행하고 binding을 합니다.
그 뒤에 B, C, D라는 액티비티가 A액티비티 위에 sub적으로 생성됬다가 종료되는데 이 B,C,D 액티비티도
서비스에 바인딩을 해야 합니다.
우선적으로 저는 각 A,B,C,D가 onCreate/onDestory가 될 때마다 서비스에 바인딩/언바인딩 하는 코드를 넣어서 쓰고 있습니다.
위 방법과는 다르게
A라는 액티비티에서 서비스에 바인딩 되는서비스 바인딩 변수(aidl)를 public static으로 두어도
나머지 B,C,D가 A 위에 부수적으로 생성되기 때문에 해당 변수를 호출하여 이용가능하다라는 것을 알고 있습니다.
제 질문의 요지는 각 activity가 생성/삭제 될 때마다 바인딩/언바인딩을 각자 하는게 나은지,
아니면 A라는 액티비티에서 서비스 바인딩 변수를 static으로 두고 나머지 액티비티가 이용하여도
머 중간에 안정성에 문제가 된다거나 쓰면 안된다는 점이 있는지 궁금합니다.
안드로이드 열공 하는 횐입니다..
지금 현재 한 서비스(S)를 두고 A라는 메인 액티비티가 onCreate될 서비스를 실행하고 binding을 합니다.
그 뒤에 B, C, D라는 액티비티가 A액티비티 위에 sub적으로 생성됬다가 종료되는데 이 B,C,D 액티비티도
서비스에 바인딩을 해야 합니다.
우선적으로 저는 각 A,B,C,D가 onCreate/onDestory가 될 때마다 서비스에 바인딩/언바인딩 하는 코드를 넣어서 쓰고 있습니다.
위 방법과는 다르게
A라는 액티비티에서 서비스에 바인딩 되는서비스 바인딩 변수(aidl)를 public static으로 두어도
나머지 B,C,D가 A 위에 부수적으로 생성되기 때문에 해당 변수를 호출하여 이용가능하다라는 것을 알고 있습니다.
제 질문의 요지는 각 activity가 생성/삭제 될 때마다 바인딩/언바인딩을 각자 하는게 나은지,
아니면 A라는 액티비티에서 서비스 바인딩 변수를 static으로 두고 나머지 액티비티가 이용하여도
머 중간에 안정성에 문제가 된다거나 쓰면 안된다는 점이 있는지 궁금합니다.
안정성은 bind/unbind에서 오는 것이 아니라 프로그램 하신 분의 실력(?) 에서 옵니다.
다만, staic 변수를 공유하는 것은 메모리관리에서 조금 마이너스 일거 같구요.
A 액티비티에서 unbind 하는 순가 서비스도 종료됩니다.
B, C, D 가 A 종료이후에 살아있지 않다는 보장이 되어야 할거 같습니다.