AIR for Android에서 어플리케이션 종료
Study/AIR 2010/07/19 17:45 |
현재 prerelease로 AIR for Android가 나와있습니다.
말 그대로 AIR로 안드로이드폰에서 돌아가는 어플리케이션을 만드는 것인데
AIR 어플리케이션을 만들듯이 죽죽 만들고 export를 apk 파일로 해주는 것이죠.
물론 안드로이드폰에 AIR Runtime이 설치되어있어야합니다. (이 또한 prerelease에 Froyo에서만 돌아감)
뭐 어쨌거나, 이 포스트 제목을 검색해서 왔다면 이미 환경설정을 다 했으리라 생각하고 본론으로 넘어가겠습니다.
안드로이드폰에서 테스트 싹싹 하다가 홈버튼이나 백버튼을 누르면 바탕화면으로 가게됩니다.
그런데 문제는... 그렇게해서 바탕화면으로 가게되면 AIR 어플이 계속 돌아가고 있다는 것이죠.
쓸데없이 백그라운드에서 시스템의 자원을 야금야금 먹고있어서 속도가 느려지는 원인이 됩니다.
그럼 어찌해야할까요.
아니. 그 전에 어플의 종료에 대해 생각을 해 봅시다.
종료가 그냥 종료지 어플의 종료는 또 무엇이냐 하실 수 있겠습니다.
한 가지 예를 들어보겠습니다. 이해하기 쉽게 게임이라 하겠습니다.
게임을 즐기고 있는데 어디선가 전화가 옵니다.
이 때, 게임은 백그라운드로 들어갑니다.
그리고 전화를 끊습니다.
그럼 강제로 백그라운드로 들어갔던 게임이 다시 실행됩니다.
굿.
아주 물 흐르듯 자연스럽죠. 그리고 당연한 것이고요.
그런데 그 게임이 전화통화하는 중에도 계속 돌아간다는게 문제입니다.
장애물 피하기 게임이라 한다면 통화를 끝내고 돌아왔을 때 장애물에 걸려 게임이 종료되어있겠죠.
이런 경우에 게임을 일시정지를 시켜줘야 합니다.
전화가 오거나 홈/백버튼을 눌렀을 때, AIR 어플리케이션으로 Event.DEACTIVE 이벤트가 전달됩니다.
그럼 그 이벤트를 받아서 게임을 일시정지 시켜줘야겠죠. 간단합니다.
그리고 백그라운드에있던 게임이 다시 시작되면 Event.ACTIVE 이벤트가 전달되죠.
이번에도 마찬가지로 이 이벤트를 받아서 게임을 다시 실행하면 됩니다.
그런데 위와 같이 한다면 처음 이야기를 꺼냈을 때 언급했듯, 백그라운드에서 자원은 계속 먹고있습니다.
저런 처리 다 필요없다라거나, 사용자가 직접 어플을 종료할 수 있도록 버튼을 만들었다면.
여기에 사용자가 실수로 누르는 것을 고려한다면, 경고창을 띄워서 예/아니오 버튼을 띄워주는 것도 좋을 것입니다.
댓글을 달아 주세요