Mobile/Android

[Android]OS version 3.1 이후부터 Broadcast 주의 사항

out of coding 2015. 10. 28. 11:50

안드로이드 OS version 3.1 이후부터 sendBroadcast를 할 경우에 대해서, 플래그를 사용할 수 있게 됩니다.


이유는 3.1부터는 system의 package manager 는 application의 stop 상태를 유지 관리하며,

background process 나 다른 app에서 launch 할 수 있는 것을 control 하기 때문입니다.


다음 플래그로 선택을 할 수 있습니다.


FLAG_INCLUDE_STOPPED_PACKAGES : stopped 된 application도 target에 포함

FLAG_EXCLUDE_STOPPED_PACKAGES : stopped 된 application은 target에 미포함


Broadcast intent에 대해서는 기본값으로 FLAG_EXCLUDE_STOPPED_PACKAGES를 더하게 됩니다.

기타 다른 component에 대해서 는 기본값으로 FLAG_INCLUDE_STOPPED_PACKAGES를 더하게 됩니다.


* 어플리케이션이 설치된 후 한번도 실행되지 않거나, 어플리케이션 관리자에서 강제종료되었을 경우에 stopped state 입니다.


이 값들을 가지고, 실행중인 앱에만 전달하고 싶을 경우에는,

FLAG_INCLUDE_STOPPED_PACKAGES을 사용하고, FLAG_EXCLUDE_STOPPED_PACKAGES을 사용하면 됩니다.


어려운 부분은 아니지만,

안드로이드가 귀찮게 하네요 ㅎㅎ