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

액티비티 Task 에 대한 질문입니다.

0 추천

안녕하세요 안드로이드 펍 가족님들.

현재 액비티비 Task에서 질문입니다.

 

현재 모든 액티비티는 android:launchMode="singleTask"로 다해놓은상태입니다.

다름이 아니라 여기서 시나리오를 말씀드린다면

A ->  B -> C-> D 에서 다시 A로 

Intent it =new Intent(this, MainActivity.class);

startActivity(it);

 

실행을했습니다. 

그런데 여기서 제가 백키를 눌러버리면 앱이 꺼지는데요

A ->  B -> C-> D ->A 로 간다음 백키로누르면  ->D->C->B->A

이렇게 다시 뒤로 차례대로 돌아가버리고 싶은데요 어떻게 해야하나요 테스크쪽이 점 복잡한거 같아서요 ㅜㅜ

 

좋은 하루 되십시오.^^

 

흠바바 1 (4,000 포인트) 님이 2014년 8월 12일 질문

2개의 답변

0 추천
어떤게 문제가 되는지 모르겠네요.

일단 그냥 startActivity를하면 자동으로 이전 activity는 스택에 보관이 되어있을거아니에요..

그럼 그냥 백키만누르면 차례대로 이전 액티비티가 뜰텐데요..

SingleTask가 뭔지는 모르겠지만 그냥 액티비티만 실행시키면 차례대로 뒤로 넘어갈텐데요..
기초개발자 (24,060 포인트) 님이 2014년 8월 12일 답변
SingleTask가 액티비티 재사용하는것입니다 기존에 이미 액티비티가 있으면 다시 만들지 않고  그것을 다시 불러오는것입니다.
0 추천

http://developer.android.com/guide/topics/manifest/activity-element.html

singleTask" and "singleInstance" activities can only begin a task. They are always at the root of the activity stack. Moreover, the device can hold only one instance of the activity at a time — only one such task.

 

singleTask는 다른 분 말씀대로 이미 존재하는 경우 재활용됩니다.

다만 singleTask와 singleInstance는 개별의 task가 만들어지고 해당 task에 다른 activity를 쌓지 않는 것으로 보입니다.

때문에 back키를 눌러도 이전 activity로 돌아가지 못하는 것 같습니다.

원하시는 결과를 얻으시려면 standard모드로 하던가 아예 launch mode 지정을 안하시는게 맞을 것 같습니다.

skpkyle (1,280 포인트) 님이 2014년 8월 20일 답변
...