Android/App개발2013. 11. 6. 19:28



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리시버같은것은 어떻게 해야 할까요???


Posted by 삼스