Привет, я пытаюсь создать приложение, но у меня следующая ошибка, когда я выхожу из приложения, мое приложение использует пользователей входа, но при нажатии выхода покажите мне это:
ошибка
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));
}
Это потому, что вы пытаетесь запустить действие, используя mCtx
, который не является контекстом активности. Вам нужно использовать Activity, где находится метод logout
, примерно так:
public void logout() {
...
startActivity(new Intent(this, LoginActivity.class));
// or use YourActivity.this instead of this
}
привет, когда я нажимаю "Выход", выдавайте это: finish(); SharedPrefManager.getInstance(getApplicationContext()).logout();
вы можете попробовать использовать 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)
, чтобы выполнить только логин в задаче.
ваш код
logout()
относится к классу деятельности или к другому классу?