2015-07-08 2 views
0

Я не хочу, чтобы пользователь мог вернуться откуда-то из моего LoginActivity.Android Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK не работает из Dialog

Это работает хорошо с MainActivity (из панели навигации):

Intent intent = new Intent(this, LoginActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
finish(); 

Результат - стек обратно очищается.
Но когда я пытаюсь вызвать это от моего пользовательского диалога:

private Context mContext; 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
dismiss(); 
mContext.startActivity(intent); 
((Activity)mContext).finish(); 

стек обратно не ясно, что я могу вернуться из моего LoginActivity к предыдущему окну.

Пытался найти причину, но никакого результата до сих пор.

ответ

0

У меня была аналогичная проблема, и я добавил android:launchMode="singleTop" в мой activity в AndroidManifest.xml сделал работу.

Я взял идею из этого question

+0

Такое же поведение, без помощи. Я полагаю, проблема в том, что я вызываю все это из своего диалога, но я не могу найти причину. –

+0

Открывает ли ваш MainActivity диалоговое окно, а затем открывается диалоговое окно LoginAcitivity? – Victor

+0

Да, в диалоговом окне есть кнопка SignOut –

0

попробуйте очистить стек активность:

Установите android:noHistory= "true" в файле AndroidManifest.xml в <activity тег для входа активности.

http://developer.android.com/reference/android/R.styleable.html#AndroidManifestActivity_noHistory

+0

Это не сработало. Добавлено это, но все же нажатие назад возвращает меня к предыдущему экрану. –