Android 3.1 부터 system 의 package manager 는 application 의 stop 상태를 유지관리하며, background process 나 다른 app 에서 launch 할 수 있는 것을 control 합니다.
App 실행후 Back Key를 이용하여 App을 종료한 상태와,
단말기 "환경설정 > 에플리케이션 관리 > App > 앱 강제 종료"와는 상태가 다르다는 것 입니다.
여기서 Back Key를 이용해 Activity를 종료하는 것은 stopped state이며 앱 강제 종료는 Application Stopped State 입니다.
문제는 안드로이드 3.1이전에 사용한 방식으로 BroadCast 메시지를 발송하였을때 Application Stopped State 상태에서는 Broadcast 메시지를 받을 수 없습니다.
Application Stopped State에서 BroadCast 메시지를 받기위해서는 FLAG_INCLUDE_STOPPED_PACKAGES를 추가하여 Broadcast하여야 합니다.
FLAG_INCLUDE_STOPPED_PACKAGES : stopped 된 application 도 target 이 됩니다. FLAG_EXCLUDE_STOPPED_PACKAGES : stopped 된 application 은 target 이 되지 않습니다. |
* 기본 값은 FLAG_EXCLUDE_STOPPED_PACKAGES 입니다.
사용 방법
1 2 3 4 5 6 7 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { intent.addFlags(FLAG_INCLUDE_STOPPED_PACKAGES); } sendBroadcast(intent); |
그렇담..
Push리시버같은것은 어떻게 해야 할까요???