2014-02-11 3 views
0

내 앱에 시스템 로그인이 있는데, 사용자가 자신의 계정에 로그인하면 다시 스택이 지워지므로 로그를 볼 수 없도록 만들고 싶습니다. 기본 액티비티의 로그 아웃 버튼을 클릭하지 않는 한 나는 어떻게 이것을 성취 할 것인가?인 텐트로드에서 백 스택을 지우는 방법

모든 도움을 주시면 대단히 감사하겠습니다.

답변

2

finish() 방법을 사용하여 의도 한 후에 로그인 활동을 파괴하십시오. 스택에서 제거됩니다. 당신은 스택이 활동을 넣어하지 않으려면

Intent i = new Intent(this, YourAccountActivity.class); 
startActivity(i); 

// destroying your current activity 
finish(); 

, 당신은 또한 당신이 활동을 변경하는 경우,이 활동이 될 수 없습니다

android:noHistory="true"AndroidManifest.xml

에서 사용할 수있는 스택.

"true"값은 활동이 내역 추적을 남기지 않음을 의미합니다. 작업의 작업 스택에 남아 있지 않으므로 사용자는 작업 스택으로 돌아갈 수 없습니다.

또 다른 옵션은 IntentFlags를 사용하는 것입니다.

Intent i = new Intent(this, YourAccountActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 
+0

첫째 .. 다음 동시에 Homeactivity 및 otheractivity을 마무리 할 때. 도움에 정말 감사드립니다. 나는 한 가지 질문을 가지고있다 : 나는 주 활동 전에 두 가지 활동을 갖고 있으며 동시에 두 활동을 모두 정리하고 싶은가? –

+0

내 의견에 대한 내 대답을 편집했습니다 –

+0

대단히 감사합니다! 그것은 넘어서 서 넘어 가고 ... 많이 감사합니다. 나는 지금 내가 뒤의 스택에 대해 잘 알고 있다고 느낀다. –

1

동시에 두 작업을 수동으로 끝내려면 ApplicationContext 클래스를 사용할 수 있습니다.

MyApplicationClass.java

public Activity homeActivity = null; 
public Activity otherActivity = null; 

당신은 당신이에서 onCreate에서 할 수있는 Homeactivity() 메소드를 시작할 때 : otheractivity의에서 onCreate() 메소드에서

HomeActivity.java

private MyApplicationClass myApplication = null; 

    myApplication = (MyApplicationClass)getApplicationContext(); 

    myApplication.homeActivity = HomeActivity.this; 

같은 :

otheractivity.java

private MyApplicationClass myApplication = null; 

     myApplication = (MyApplicationClass)getApplicationContext(); 

     myApplication.otherActivity = otheractivity.this; 

그리고 당신은 당신이 방법처럼 끝낼 수 빠른 답장을 보내 주셔서 감사합니다 오프

myApplication.homeActivity.finish(); 
myApplication.otherActivity.finish(); 
+0

도와 주셔서 대단히 감사합니다. 정말 감사. –