2017-12-13 5 views
-3

는 지금은 HomeActivity이 ->Activity A ->Activity B ->Activity C, 흐름 제어

내가 HomeActivity를 볼 것으로 예상 활동 C를 완료 한 후. Intent Flags 또는 다른 제안을 통해이 흐름을 처리하려면 어떻게해야합니까? Activity C가 나타날 때

편집

그러나 Activity AActivity B은 스택에서 제거해야합니다.

Activity ABC이 워크 플로우, 그래서 AB에 갈 수 B 내가 다음 BAB 사라해야 제출 한 후, 뭔가를 편집 할 A로 돌아가서 확인으로 C을 표시 할 수 있습니다

+0

당신은 자신을 끝내기 위해 활동 A, B에 브로드 캐스트를 보낼 수 있습니다. – Lucky

+0

사용자가 활동 B에있을 때 사용자가 다시 활동 A를 표시해야합니다. 활동 C가 나타나면 스택을 지우는 것이 취소되어야합니다. –

+0

예 사용자가 역주를 클릭하면 – Lucky

답변

0
당신은 사용해야

,이 플래그는 활동이 시작되기 전에 삭제 에 활동과 연관 될 것이다 기존의 작업을하게됩니다. 즉, 활동 은 빈 작업의 새 루트가되고 이전의 모든 활동이 완료됩니다. 이는 FLAG_ACTIVITY_NEW_TASK와 함께 사용해야합니다.

코드 구조

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
+0

을 클릭하면 브로드 캐스트를 보내야합니다. –

+0

@theerthononthongkam 나는 이미'finish()'를 사용했다고 말했습니다. –

+0

@theerasantonthongkam 아직 해결되지 않았습니까? –

0

사용 당신이 이것을 달성 할 수있는 발사 모드를 사용하여이 코드

Intent intent = new Intent(ActivityC.this, HomeActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    startActivity(intent); 
    finish(); // call this to finish the current activity 
0

. 는

<activity android:name=".ActivityC" 
android:launchMode="singleTask"> 
0

당신은 다음 일을 시작하기 전에 활동을 죽여야 매니페스트 파일에 액티비티 C에 대한 단일 작업을 사용합니다.

Intent intent = new Intent(ActivityC.this, HomeActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 
finish();