2

저는 최상위 수준의 TabActivity로 구성된 Android 2.3.3 응용 프로그램을 개발 중입니다. 또한 프로그래밍 방식 TabHost에 탭의 수를 추가하고 각각 별도의 자식 활동을주는거야 :TabHost에서 활동 닫기/다시 시작

intent = new Intent().setClass(this, MyFirstActivity.class); 
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent); 
tabHost.addTab(spec); 

intent = new Intent().setClass(this, MySecondActivity.class); 
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent); 
tabHost.addTab(spec); 

이벤트 내 응용 프로그램의 다른 곳에서 발생하고 응답 나는 모든 탭 활동을 다시 만들려고합니다. 이렇게하려면 getTabHost(). clearAllTabs()를 호출하고 탭에서 제거하지만 실제 활동을 죽이지는 않습니다. 위 코드를 다시 실행하면 기존 활동이 탭에 다시 추가되고 이전과 같이 계속 실행됩니다.

인 텐트를 만들 때 설정해야 플래그 또는 무언가가 제대로 닫히고 다시 생성됩니다. 다른 방법으로 자식 활동이 부모 TabActivity에서 제거 될 때 알려주는 다른 방법이 있습니까?

답변

1

플래그를 설정하여 활동을 다시 시작할 수 있습니다. 코드는 다음과 같습니다.

spec = tabHost .newTabSpec("tab1") 
        .setIndicator("FirstActivity") 
        .setContent(new Intent(this,MyFirstActivity.class) 
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
    tabHost.addTab(spec); 
+0

감사합니다. Raju. 나는 실제로 문서에서 그 깃발을 보았지만 나는 그것이 무엇을위한 것인지 완전히 잘못 읽었다; 웬일인지 전체 활동 스택을 정리했다고 생각했습니다. 도와 주셔서 감사합니다! –

+1

환영 마크. –