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 삼스

세가지 언어가 최근에 화두가 되고 있는 언어이며 주요 플랫폼의 개발언어이다.

자바개발자가 ObjectiveC를 배울때 어렵고 힘들어하는 부분이 있으며 역으로 ObjectiveC개발자가 자바를 배울때 어려와 하는 부분들이 있다. C#을 포함하여 모두 객체지향 언어로 일맥상통하는 부분이 있기 때문에 이런 부분들에 대해 정리하여 서로 다른 플랫폼개발자가 다른 언어를 배우는데 있어서 좀더 쉽게 배울수 있는 자료를 작성하려고 한다.


Posted by 삼스