Ошибка флага FLAG_ACTIVITY_NEW_TASK

Привет, я пытаюсь создать приложение, но у меня следующая ошибка, когда я выхожу из приложения, мое приложение использует пользователей входа, но при нажатии выхода покажите мне это:

ошибка

android.util.AndroidRuntimeException: Calling startActivity() from 
outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK
flag. Is this really what you want?

код выхода

public void logout() {
   SharedPreferences sharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
   SharedPreferences.Editor editor = sharedPreferences.edit();
   editor.clear();
   editor.apply();
   mCtx.startActivity(new Intent(mCtx, LoginActivity.class));
}

ваш код logout() относится к классу деятельности или к другому классу?

Sagar 02.05.2018 02:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
356
1

Ответы 1

Это потому, что вы пытаетесь запустить действие, используя mCtx, который не является контекстом активности. Вам нужно использовать Activity, где находится метод logout, примерно так:

public void logout() {
  ...
  startActivity(new Intent(this, LoginActivity.class));
  // or use YourActivity.this instead of this
}

привет, когда я нажимаю "Выход", выдавайте это: finish(); SharedPrefManager.getInstance(getApplicationContext()).logou‌​t();

Matteo 02.05.2018 02:34

вы можете попробовать использовать Intent intent = new Intent(mCtx, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mCtx.startActivity(intent), чтобы выполнить только логин в задаче.

ישו אוהב אותך 02.05.2018 03:07

Другие вопросы по теме