2011-04-11 6 views
4

나는 이전의 "표준"활동으로 돌아 가기 위해 플래그 FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP을 사용하고 있습니다. 새 인스턴스를 다시 만들지 않으려면 FLAG_ACTIVITY_SINGLE_TOP을 사용합니다. 그러나 내가 발견 한 것은 깃발 FLAG_ACTIVITY_SINGLE_TOP이 무시되어 활동이 완료되고 다시 만들어 졌다는 것입니다.하나의 의도로 FLAG_ACTIVITY_SINGLE_TOP과 FLAG_ACTIVITY_CLEAR_TOP을 둘 다 설정할 수 없습니까?

  • 다음은 docs에서 찾은 것입니다. FLAG_ACTIVITY_CLEAR_TOP : FLAG_ACTIVITY_CLEAR_TOP을 사용할 때 FLAG_ACTIVITY_SINGLE_TOP을 추가하여 "finish - recreate"를 방지 할 수 있다고 말합니다.

  • 다음은 다른 문서입니다. FLAG_ACTIVITY_CLEAR_TOP :

    참고 : 지정된 활동의 시작 모드가 "표준"인 경우, 너무 스택에서 제거되고 새로운 인스턴스가 들어오는 텐트를 처리하기 위해 그 자리에 시작됩니다. 시작 모드가 "표준"일 때 새로운 인 텐트에 대해 항상 새 인스턴스가 만들어지기 때문입니다.

나는 첫 번째 문서를 오해 했나?

답변

5

문서는 FLAG_ACTIVITY_CLEAR_TOP 사용자가 설정하는 데 필요한 모든 것을 시사한다. 그러나 실제로 활동을 다시 작성하지 못하도록 둘 다 설정해야합니다.

내 경우에는 속임수를 썼는지 :

Intent tabIntent = new Intent(this, Main.class); 
    tabIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(tabIntent); 
0

확인이 하나 (메인 내가로 돌아 싶었다 활동 인).
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_SINGLE_TOP)

관련 문제