2011-04-20 5 views
0

내 앱 P의 현재 작업 스택에 활동이 포함되어 있다고 가정합니다. B. B. 일부 의도로 시작된 B입니다.윌 android : alwaysRetainTaskState 플래그 활동 의도를 저장 하시겠습니까?

A는 android : alwaysRetainTaskState 플래그로 정의됩니다.

그런 다음 사용자가 다른 앱으로 전환하고 잠시 후 P의 프로세스가 OS에 의해 종료됩니다.

그런 다음 사용자가 홈 화면에서 P를 시작했습니다. A에는 android : alwaysRetainTaskState 플래그가 있기 때문에 스택이 A B로 복원되고 B가 표시됩니다. 내 이해, B.onCreate() 호출되며 A.onCreate() 호출되지 않습니다. 내가 맞습니까?

게다가, 현재 B는 의도가 있습니까? 즉, B가 getIntent()를 호출하면 getIntent()가 null 또는 인 텐트 오브젝트를 반환합니까?

감사합니다.

+0

질문에 대한 답변을 받아 들여야합니다. –

답변

0

내 이해는 B.onCreate() 만 호출되며 A.onCreate()는 호출되지 않습니다. 내가 맞습니까?

예, 그렇습니다.

게다가, B는 여전히 의도가 있습니까? 즉, B가 getIntent()를 호출하면 getIntent()가 null 또는 인 텐트 오브젝트를 반환합니까?

getIntent()는 항상 작동합니다 - 당신이 활동 A에서 통과 하나에 동일한 텐트 오브젝트를 반환합니다 (동일하지 예,하지만 직렬화 한)이 대답은 내 실험에서 오는

(와 안드로이드 2.3), 안드로이드의 독립 활동 이데올로기에 깔끔하게 들어 맞습니다 (IMHO는 인텐 트가 한 응용 프로그램 내에서 사용되는 경우에도 직렬화 가능 데이터 만 포함 할 수있는 유일한 이유입니다). 그래서 나는 모든 안드로이드 버전에 해당한다고 믿습니다.

"alwaysRetainTaskState"는 심지어 필요하지 않습니다 - 시스템은 사용자가 작업으로 빨리 돌아 오면 기본적으로 "false"값으로 활동 B를 유도합니다 (http://developer.android.com/guide/topics/manifest/activity-element.html#always에 따르면 시스템은 작업 상태 만 재설정합니다 "사용자 30 분 "과 같은 특정 시간 동안 작업을 방문하지 않은 경우).

관련 문제