Используйте Shared Preference для автоматического входа в систему. Когда пользователи входят в ваше приложение, сохраняйте статус входа в sharedPreference и очищайте sharedPreference, когда пользователи выходят из системы.
Проверяйте каждый раз, когда пользователь входит в приложение, если статус пользователя из общего предпочтения равен true, тогда нет необходимости повторно входить в систему, в противном случае перейдите непосредственно на страницу входа.
Для этого сначала создайте класс, в этом классе вам нужно написать всю функцию, касающуюся значений get и set, в разделяемом предпочтении. Пожалуйста, посмотрите на этот код ниже.
public class SaveSharedPreference
{
static final String PREF_USER_NAME= "username";
static SharedPreferences getSharedPreferences(Context ctx) {
return PreferenceManager.getDefaultSharedPreferences(ctx);
}
public static void setUserName(Context ctx, String userName)
{
Editor editor = getSharedPreferences(ctx).edit();
editor.putString(PREF_USER_NAME, userName);
editor.commit();
}
public static String getUserName(Context ctx)
{
return getSharedPreferences(ctx).getString(PREF_USER_NAME, "");
}
}
Теперь в основном действии («Деятельность», где пользователи будут перенаправлены при входе в систему) сначала проверьте
if(SaveSharedPreference.getUserName(MainActivity.this).length() == 0)
{
// call Login Activity
}
else
{
// Stay at the current activity.
}
В действии «Вход в систему», если вход в систему успешен, затем установите имя пользователя с помощью setUserName () функция.
после входа в систему при повторном нажатии звоните moveTaskToBack(true);
из этого ваше приложение будет в фоновом режиме. надеюсь, что поможет
Просто хотел опубликовать другое решение, которое я нашел самым простым для меня:
SharedPreferences sharedpreferences;
int autoSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//"autoLogin" is a unique string to identify the instance of this shared preference
sharedpreferences = getSharedPreferences("autoLogin", Context.MODE_PRIVATE);
int j = sharedpreferences.getInt("key", 0);
//Default is 0 so autologin is disabled
if(j > 0){
Intent activity = new Intent(getApplicationContext(), HomeActivity.class);
startActivity(activity);
}
}
public void loginBtn(View view){
//Once you click login, it will add 1 to shredPreference which will allow autologin in onCreate
autoSave = 1;
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt("key", autoSave);
editor.apply();
}
Теперь давайте предположим, что у меня есть кнопка выхода из другого упражнения:
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//Get that instance saved in the previous activity
sharedPreferences = getSharedPreferences("autoLogin", Context.MODE_PRIVATE);
}
@Override
public void signOut(View view) {
//Resetting value to 0 so autologin is disabled
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("key", 0);
editor.apply();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
Всегда и всегда ... так что это похоже на автоматический вход в систему. Приложение запускается, пользователь не должен входить снова, как только он предоставил свою авторизационную информацию. Есть несколько способов добиться этого. API Facebook, например предоставляет механизм входа в систему без использования элемента формы. Таким образом, вам в основном придется создать представление, в котором пользователь может один раз предоставить свои данные авторизации, сохранить их в SharedPreferences и автоматически войти в следующий раз. Даже если такого входа в систему на основе API нет, и вам необходимо использовать предоставленную форму входа в систему, иногда вы можете имитировать POST-запрос для входа в систему. Это зависит от фактической реализации этой формы на стороне сервера. Но помните: это проблема безопасности. Поэтому никогда не храните учетные данные авторизации в текстовом формате. Не полагайтесь на то, что он будет зашифрован определенным ключом в вашем приложении, так как этот ключ может быть обнаружен путем обратного инжиниринга вашего APK. Вместо этого используйте много коллективной информации об устройстве и ключе, который пользователь должен ввести или случайно генерируется и сохраняется приложением.