android TaskStackBuilder Tutorial |
API Level 11 이상에서는 ( 3.0 / HoneyComb ) back key 를 통한 navigation convention 이 바뀌었다.
back key 의 behavior 는 현재 task 에서의 조작만을 의미하고, 다른 task 로의 이동은 없다.
이전 task로의 inter task 이동은 "recents" 를 통해서 가능하다.
android 3.0 이후에서 한 task stack 에서 다른 task 로 이동하는 경우,
어플리케이션은 back stack 과 history 를 융합시켜서 유저가 back 키 여러번 눌러 launcher 로 나갈 수 있게 해야 한다. back key 를 눌러서 다른 task 로 이동하면 안된다.
TaskStackBuilder 는 현재의 수정된 convention 을 거슬러 올라가 하위호환성을 가질 수 있게 하는데 쓰인다. 다시 말해 다른 task 로 갈 수 있도록 하는 것을 말한다.
3.0 버전 이상에서는 startActivities() 나 PendingIntent 가 앞서 표현한것과 같이 융합시킨다.
예제 코드
<Example Code>
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack( NotifiResultActivity.class );
stackBuilder.addNextIntent( new Intent( getApplicationContext(), NotifiResultActivity.class ) );
stackBuilder.addNextIntent( new Intent( getApplicationContext(), NotifiResultActivity2.class) );
stackBuilder.addNextIntent( new Intent( getApplicationContext(), NotifiResultActivity2.class) );
stackBuilder.startActivities();
TaskStackBuilder 를 사용하기 위해서는 반드시 manifest 에 부모 activity 도 명시해주어야 한다.
<xml>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".NotifiResultActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name=".NotifiResultActivity2" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".NotifiResultActivity" />
</activity>
MainActivity -> NotifiResultActivity -> NotifiResultActivity2 -> NotifiResultActivity2
addParentStack 은 startActivity() 를 부르는 Activity 를 parent 로 가진 Activity로 설정하여 call 해야 한다.
( 테스트를 다시 해봐야 할듯.. ㅠ )
API 16 이상에서는 meta-data tag 를 사용한 코드가 아래의 tag로 대체 가능하다.
<activity android:name=".NotifiResultActivity"
android:parentActivityName=".MainActivity"/>
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] view 기본 click 소리 내는 방법. (2) | 2013.10.30 |
---|---|
[android]The library 'lombok2.jar' contains native libraries that will not run on the device. (0) | 2013.10.28 |
[android] Google Map V2 manifest 설정 (0) | 2013.10.24 |
[android] addToBackStack( String name ) 뭐하는 녀석이냐? (0) | 2013.10.23 |
[java] full 한글 판별 코드 (0) | 2013.10.21 |
댓글