마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 마켓 연동 질문입니다.

0 추천
안녕하세요.

 

버튼을 누르면 해당 앱의 마켓주소로 가게 연동을 시켰습니다.

 

하지만 앱스토어를 실행하고 홈키를 눌렀다가 저희 앱을 실행하면 앱스토어가 그냥 남아있더군요,

그래서 하이퍼 링크를 걸어서 실행했는데 pc버전처럼 창이 열리더라고요.

 

혹시 버튼을 누르고 앱을 설치후에 홈키를 눌르고 저희앱을 실행했을때 저희 앱 화면을 보여주고싶은데 이방법은 어떻게 처리해야되는지 궁금합니다.

 

인터넷창을 열었다가 그게 로딩이 끝나면 앱스토어로 연결되는 것도 있던데 그방법을 알고싶습니다 ㅠ
스릉스릉 (1,260 포인트) 님이 2013년 2월 20일 질문

2개의 답변

0 추천

인터넷창을 열었다가 그게 로딩이 끝나면 앱스토어로 연결되는 것도 있던데 그방법을 알고싶습니다

- 웹뷰의 onPageFinished()에서 마켓으로 연결하시면 될 것 같습니다. (질문하신게 이게 맞는 건지 모르겠습니다. intent로 웹뷰를 열때 마켓주소로 웹페이지를 여는걸  얘기 하시는 건가요?)

 

버튼을 누르면 해당 앱의 마켓주소로 가게 연동을 시켰습니다. 하지만 앱스토어를 실행하고 홈키를 눌렀다가 저희 앱을 실행하면 앱스토어가 그냥 남아있더군요 

-  홈키를 눌렀을 때 앱을 종료 시키는 로직을 추가하시는건 어떤가요?

- 홈키를 누르고 어플로 돌아올때 onResume에서 현재 페이지가 마켓일경우 (Flag 변수로 체크하시던지 다른 방법을 쓰시든..) 새로 시작하는 방법은 어떤가요?

익명사용자 님이 2013년 2월 20일 답변
0 추천

안드로이드는 기본적으로 앱의 단위가 아니라 태스크의 단위로 관리됩니다. 현재 앱에서 마켓 액티비티를 실행시켰다면 현재 그 앱이 실행되는 태스크의 액티비티 스택의 가장 위에는 마켓 액티비티가  올라와 있는 것입니다. 홈으로 나갔다가 다시 그 앱을 실행시킨다고 하면 [그 앱의 태스크가 다시 실행된다는 것이 좀더 정확한 표현이겠지요] 그 태스크의 가장 위에 있는 마켓 액티비티가 다시 보여지는 것이 정상인 것입니다.

하지만 그런 태스크의 동작에 있어서 Intent의 Flag설정으로 동작을 다르게 할수 있습니다. 

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

현재 원하시는것에 가장 적합한 플래그는 바로 FLAG_ACTIVITY_CLEAR_WHEN_TASK_REST 입니다. 이 경우 홈을 나갔다가 다시 들어올때 현재 실행되는 액티비티로 돌아오면 유저들이 헷갈릴 소지가 있으므로 그 액티비티와 그 위에 실행된 모든 액티비티들을 종료시켜 버리고 그 액티비티 실행 이전의 액티비티가 나타나게 됩니다.

안드로이드 앱 개발시 가장 중요하게 알아야할 태스크와 백스택의 개념을 다시 한번 공부해보시기를 권장드립니다.

http://developer.android.com/guide/components/tasks-and-back-stack.html

 

회색 (21,340 포인트) 님이 2013년 2월 20일 답변
...