2012-09-05 9 views
0

내 앱에 로그인 화면이 있습니다. 이제는 뒤로 버튼을 눌러 로그인 화면으로 돌아갈 수 있습니다. 나는 그런 일이 일어나기를 원하지 않는다.활동 중지 및 다시 시작 (Android)

일단 사용자가 로그인하면 앱에서 로그인 활동을 중지해야 사용자가 다시 로그인 할 수 있습니다. 메뉴 화면에서 이미 중지 된 후 로그인 활동을 다시 시작하는 데 사용하려는 로그 아웃 버튼이 있습니다.

나는 한시간 동안보고 시험을 해왔고 대답을 찾을 수 없습니다.

답변

0

, 단순히 다음과 같이 응용 프로그램 매니페스트 android:excludeFromRecents attribure에서 활동 선언에 추가하여, 최근 스택에서 제외 :

<activity android:name=".Login" android:excludeFromRecents="true"></activity> 

다음 일단 귀하의 로그인 활동이 완료되면, 당신은 (아마도) 당신의 앱의 다음 활동으로갑니다. 당신은 새 미사일을 startActivity()를 호출 일단, 간단하게 로그인 actvity을 완료 finish();를 호출하십시오 manifest for your login activity

... 
startActivity(intentToLaunchNextActivity); 
finish(); 
0

로그인이 성공하면 Actvity.finish()으로 전화 할 수 있습니다.

로그인 활동을 다시 시작하려면 Activity.startActivity(intent)을 사용하십시오.

0

시도 중 하나

로그인 사용자의 로그인 활동에 성공 후, 다음 활동을 실행 한 후 활동에 대한 마무리()를 호출합니다. 이것은 효과적으로 로그인 활동을 파괴하고 활동 백 스택에서 제거합니다 (그래서 더 이상 탐색 할 수 없습니다). 예 :

onLoginComplete(){ 
    startActivity(new Intent(this, NextActivity.class)); 
    finish(); 
} 

또는 로그인 활동의 onResume에서 로그인 상태를 확인하고 true이면 완료하십시오. 이미 로그인 한 경우 사용자가이 활동에 올 때마다이 방법이 종료됩니다 (그리고 그들은 실제로 그것을 볼 수 없을 것입니다) 뭔가처럼 :.

@Override 
public void onResume(){ 
    super.onResume(); 
    if(isLoggedIn()) 
     finish(); 
} 
0

당신은 성공적인 로그인시 로그인 화면을 떠날 때 finish()으로 전화하면 스택에서 자신의 활약이 제거됩니다.

귀하의 로그 아웃 버튼은 다음과 같이 로그인 페이지를 다시 호출해야합니다 :

Intent intent = new Intent(TheCurrentActivity.this, YourLoginScreen.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); 

이 로그인 화면을로드하고 로그 아웃 한 후 다시 갈 수 없도록 현재 활동 스택을 취소합니다. 당신은 사용자가 활동을 로그인 돌아갈 수 있기를 원하지 않는 경우

1

설정 noHistory = true. 이렇게하면 활동이 백 스택에 저장되지 않습니다.