2016-07-13 2 views
0

모든 페이지가 WebPageActivity (webView) 내에로드되는 하이브리드 응용 프로그램이 있습니다. 나는 각 스크린을위한 새로운 활동을 생성하고 싶지 않지만 각 하이브리드 HTML 페이지에 대해 동일한 활동의 ​​여러 인스턴스를 작성한다. > B - -> D ->백 스택의 특정 활동을 포 그라운드로 가져와 맨 위를 지움

다음

스택의 모든 활동 유형 WebPageActivity의이고 E 모든 인스턴스가 그리는 다른 HTML

A : 다음

,

탐색 스택 요구 사항입니다 .

사용자가 'E'활동에 대한 몇 가지 버튼을 누른 다음은, 전경 맑은 상단에 'B'를 기존의 다음과 같은 스택의 결과로 데려 와야 클릭하면

A-> B

요약 :

스택의 모든 액티비티는 유형이 동일하지만보기가 다르므로 맨 위에 스택이있는 일부 액티비티로 돌아 가야합니다.

가능한 데이터 :

  1. 모든 활동은 HTML 파일의 이름을 식별하는 속성을 보유하고 있습니다.
  2. 스택의 활동으로 돌아가고 싶을 때마다 해당 활동에 나타날 html의 이름을 알고 있습니다.
+0

을하는 데 도움이 그리고 방금 새로 시작하지 않고 하나 ativity을 사용하고 바로 컨텐츠를 대체 할 수있는 B의 상단에

희망을 모든 인스턴스를 취소해야합니까? – miva2

+0

내가 하나의 액티비티만을 사용한다면 히스토리에 대한 맞춤형 백 스택을 유지해야 할 것입니다. – JTeam

답변

1

조각을 사용하고 다른 HTML을 표시하기 위해 동일한 활동의 ​​새 인스턴스를 만들지 않아야합니다. 안드로이드는 당신과 똑같은 유스 케이스의 프래그먼트를 가지고 있습니다.

또한 여러 활동 인스턴스를 만들면 앱의 메모리 사용량이 증가합니다. 조각을 사용하면 고유 한 조각 태그 (활동에 추가하는 동안 지정)를 사용하여 Fragment 백 스택에서 조각을 쉽게 제거 할 수 있습니다.

여러 활동 인스턴스를 작성하여이를 수행하려면 활동 인스턴스 'B'에 대한 의도로 CLEAR_TOP 플래그를 사용하십시오. 이것은이

+0

예 조각은 작업을 수행해야하지만 큰 변화를 피하기 위해 현재 컨텍스트에서 작업을 수행하려고했지만 그때 작업으로 해킹 된 작업없이 수행 할 수 있다고 생각하지 않습니다. CLEAT_TOP을 사용할 수 없습니다. 스택의 액티비티 인스턴스로 돌아가서 위에있는 모든 액티비티를 지우고 싶습니다. 이것들은 다른 인스턴스이지만 동일한 유형입니다. – JTeam

관련 문제