0

개발중인 애플리케이션과의 연결을 끊으려면 모든 활동을 중지하고 LoginActivity를 시작하십시오. 이렇게하려면 아래 코드를 사용하고 있습니다. LoginActivity가 시작되었지만 내 전화기의 뒤로 버튼을 클릭하면 로그인 및 암호를주지 않고 다시 연결됩니다.안드로이드 애플리케이션의 모든 활동과 단편을 중지하십시오.

NB : 내 앱에도 조각이 있습니다!

나를 도울 수 있습니까?

// After logout redirect user to Loing Activity 
     Intent i = new Intent(_context, LoginActivity.class); 
     // Closing all the Activities 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

     // Add new Flag to start new Activity 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     // Staring Login Activity 
     _context.startActivity(i); 

답변

1

호출 i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)는 텐트 플래그에 플래그 Intent.FLAG_ACTIVITY_CLEAR_TOP를 설정합니다. 그럼 당신은이 작업을 수행 :

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

이는 텐트 플래그의 내용을 설정 Intent.FLAG_ACTIVITY_NEW_TASK로하여 이전에 설정 한 플래그 Intent.FLAG_ACTIVITY_CLEAR_TOP를 클리어!

Intent.FLAG_ACTIVITY_NEW_TASK을 사용할 필요가 없습니다. 실제로 활동이 모두 taskAffinity이기 때문에 새로운 작업을 시작하지 않으므로 Intent.FLAG_ACTIVITY_NEW_TASK을 사용할 필요가 없습니다.

설정 Intent.FLAG_ACTIVITY_CLEAR_TOP으로 원하는대로 할 수 있습니다. 그러나 LoginActivity이 여전히 작업에서 활성화되어 있는지 확인해야합니다 (즉, finish()을 호출해서는 안됩니다). 이미 finish()을 호출했기 때문에 LoginActivity이 작업의 활동 스택에 없으면 Android는 LoginActivity의 새 인스턴스를 만들어 스택 맨 위에 배치합니다.

+0

문제가 해결되었습니다. 감사합니다. :) –

관련 문제