2014-02-11 2 views
0

У меня есть система входа в систему в моем приложении, и я хотел бы сделать так, чтобы после входа пользователя в учетную запись задний стек get был очищен, поэтому они не могут видеть журнал в действии, если только они не нажимают кнопку выхода из основного действия. Как бы я это сделал?Как очистить задний стек при целевой загрузке

всякая помощь была бы принята с благодарностью.

ответ

2

Используйте метод finish() для уничтожения активности входа после намерения. Он также будет удален из стека.

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

// destroying your current activity 
finish(); 

Если вы не хотите поставить эту деятельность в стеке, вы можете также использовать

android:noHistory="true" в AndroidManifest.xml

При изменении активности, эта деятельность не будет в стек.

Значение «истина» означает, что деятельность не оставит исторической трассы . Он не останется в стеке действий для задачи, поэтому пользователь не сможет вернуться к нему.

Другой вариант - использовать 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

первый прочь спасибо за быстрый ответ. Я очень ценю помощь. У меня есть один вопрос: что, если у меня есть два вида деятельности до основной деятельности, и я хочу очистить их одновременно? –

+0

Я отредактировал свой ответ относительно вашего комментария –

+0

большое спасибо! что идет выше и дальше ... очень ценится. Теперь я чувствую, что хорошо понимаю задний стоп. –

1

Если вы хотите вручную завершить два действия одновременно, вы можете использовать класс ApplicationContext и определить его.

MyApplicationClass.java

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

и при запуске Homeactivity вы можете сделать в OnCreate() метод:

HomeActivity.java

private MyApplicationClass myApplication = null; 

    myApplication = (MyApplicationClass)getApplicationContext(); 

    myApplication.homeActivity = HomeActivity.this; 

То же самое в OnCreate otheractivity в() метод:

otheractivity.java

private MyApplicationClass myApplication = null; 

     myApplication = (MyApplicationClass)getApplicationContext(); 

     myApplication.otherActivity = otheractivity.this; 

И если вы хотите, чтобы закончить Homeactivity и otheractivity в то же время, то Вы можете закончить, как этот путь ..

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

Большое вам спасибо за помощь. Я очень ценю это. –

Смежные вопросы