2014-07-20 3 views
-1

В моем приложении, когда пользователь нажимает кнопку выхода из системы, приложение берет его войти в экране снова, и когда он pressess кнопки назад от этого экрана Логина, тосты кажется, что «у должно войти, чтобы продолжить.Перезапуск минимизированы андроид приложения

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

Мне нужно его, чтобы запустить его из заставки ... что делать?
Я использовал thi s на экране входа в систему, чтобы сделать навигацию невозможной.

 @Override 
public void onBackPressed() { 


    Toast.makeText(getApplicationContext(), "You Must login to continue!", Toast.LENGTH_LONG).show(); 

    } 

Плохо ли использовать «HOME BUTTON» для выхода из приложения?

ответ

1

Это не то, как вы должны обращаться с «lougout» - у вас есть много вариантов, но не изменяйте функциональность «BACK» когда-либо.

Вы можете использовать «startActivityForResult», а затем получить код результата для LOGOUT, который проверяется в каждом действии после «входа», чтобы вы могли управлять выходом из системы.

Кроме того, у вас может быть экран выхода, который запускает стек задач и переходит прямо в «логин», если пользователь не вошел в систему или на домашней странице, если они есть. Затем, если вызывается «logout», очистите стек задач, поставьте «logout» сверху, и он должен закончить и перейти только на «вход в систему».

Что-то вроде этого:

Intent logoutIntent = new Intent(c.get(), Authenticate.class); 
logoutIntent.putExtra(AUTH_STATUS, false); 
logoutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP 
     | Intent.FLAG_ACTIVITY_CLEAR_TOP);   
startActivity(logoutIntent); 

Проверьте манифеста, чтобы быть singleTask активность:

<activity android:name=".Authenticate" 
       android:launchMode="singleTask" 
       android:label="@string/AuthenticateActName"> 
    </activity> 

Затем в Authenticate убедитесь, что регистрационная переменная обнуляется и перейти к экрану AUTHENTICATE.

Есть и другие способы, которые вы могли бы придумать, но это два предложения, которые сработали для меня.

+0

Я использовал метод очистки заднего стека всякий раз, когда вызывалась новая активность, но она остановила назад навигацию. Я имею в виду, когда я нажал кнопку «Назад», она вывела меня из приложения. Мне не нужно, чтобы я просто хотел уничтожить все действия в LOGOUT. . – Shanzay

+0

может уяснить ur anwer с помощью некоторого кода, чтобы я мог получить его лучшим способом .. пожалуйста :) – Shanzay

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