У меня есть несколько специфическая проблема, в которой я могу успешно finish () действие во время работы приложения. Это означает, что я могу перейти со страницы входа в MainActivity, и когда пользователь нажимает кнопку обратно, приложение закрывается после завершения входа в систему, но когда вы открываете приложение во второй раз, вы переходите на страницу входа вместо MainActivity. Есть какие-нибудь подсказки относительно того, почему это происходит?
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
LoginActivity.this.startActivity(intent);
LoginActivity.this.finish();
вы должны проверить, входил ли пользователь ранее в систему, тогда вы должны отправить ему mainactivity напрямую вместо активности входа в систему, вы можете использовать общие предпочтения для сохранения учетных данных пользователя после входа в систему. Каждый раз, когда он возвращается в систему, вы проверяете если пользователь сохранен в общих настройках
Хорошо, у меня создалось впечатление, что finish () будет сохраняться даже после закрытия этого приложения. Поэтому я просто создам bool, если пользователь уже вошел в систему, и сразу перейду к main, если это так. Спасибо.




Вам нужно сохранить флаг о статусе входа, вероятно, в общих настройках и просто проверить этот флаг для перехода к MainActivity при запуске приложения.
Если вы не хотите, чтобы ваш пользователь видел приглашение входа в систему каждый раз при открытии приложения, вам необходимо кэшировать токен входа, предпочтительно в SharedPreferences, и проверять действительный токен при запуске приложения.
Попробуйте этот код, чтобы проверить, вошел ли пользователь в систему или нет
sharedpreferences pref = getsharedpreferences("user",MODE_PRIVATE);
sharedpreferences.Editor editor = pref.edit();
Теперь, если пользователь успешно вошел в систему, добавьте это значение в общие настройки
editor.putBoolean("isLogin",true).apply();
И теперь в активности запуска просто проверьте, ложно ли оно, затем откройте намерение входа в систему или если true, то намерение MainActivity по этому коду
if (pref.getBoolean("isLogin",false)){
Intent i = new Intent(LauncherActivity,MainActivity.class);
startActivity(i);
}
Опубликуйте свои
AndroidManifest.xmlиLoginActivity.java. Но проблема, скорее всего, в том, что вы не проверяете (и / или сохраняете), вошел ли пользователь уже в систему, поэтому вы можете отправить его прямо наMainActivity.