2014-12-09 3 views
0

Я писал несколько модулей управления учетными записями. То, что я хочу сделать, - это привести пользователя к активности в списке учетных записей при выходе из системы. Проблемы возникают, когда пользователь нажимает кнопку «Назад», возобновляет фоновую активность, и пользователь все еще может использовать приложение даже для выхода из системы. И он не работает, когда я очищаю информацию об учетной записи в базе данных и SharedPreference.Как очистить исходные данные при выходе из системы

Для лучшего понимания я снова описываю проблему.

Например, у меня есть три вида деятельности: A, B и C. A работает как основной вид деятельности со списком, B работает как действие меню настроек, а C работает как Activity Activity.

Когда я перехожу из A в B, нажмите «Выйти» в меню B, тогда поток процесса переходит от B к C. Потому что он запрашивает у пользователя выбор (если есть) или вход в систему.

Теперь проблема заключается в том, когда пользователь нажимает кнопку возврата, она может вернуться с C на A, а не выйти из приложения (перейти на главный экран). См. Снимок экрана. enter image description here

Поскольку пользователь уже вышел из системы, у меня нет смысла перемещаться с C на A. C должен быть единственным видимым действием при этом обстоятельстве.

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

Итак, как очистить фоновой активности?

Любые комментарии будут признательны.

ответ

1

Поддерживать флаг предположит «isLoggedIn» в общих настройках или базах данных. В вашей программе запуска/первой активности проверьте этот флаг и решите, следует ли вызывать активность входа или прямую активность xyz. И когда вы очищаете данные, снова вызывайте свою миссию/первую активность с помощью значка clear_top в намерении.

+0

проблема A-> B-> C, затем нажмите кнопку возврата, C-> A. Итак, логика C идет (восстанавливается) A от фона, данные A сохраняются в памяти, и мне интересно, как очистить данные A? –

+0

означает, что вы не хотите возвращаться к A с C? – TechHelper

+0

В большинстве случаев мне нужно вернуться к A с C, кроме случаев, когда выходите. –

0

попробуйте этот код в C активности

@Override 
public void onBackPressed() { 
     Intent startMain = new Intent(Intent.ACTION_MAIN); 
     startMain.addCategory(Intent.CATEGORY_HOME); 
     startActivity(startMain); 
     } 
+0

Это не общее, потому что C необходимо вернуться к A иногда, когда пользователю нужно выполнять другие операции, кроме выключения. –

+0

B, похоже, является alertdialog.Таким образом, вы можете закончить деятельность A при выходе из системы, вызвав метод finish(). Другие мудрые просто перейдите к C. –

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