Android проверяет, что пользователь зарегистрировался раньше, иначе начните действие входа

Я хочу, чтобы активность входа начиналась, когда пользователь запустил приложение, но ранее не входил в систему. Если ранее был выполнен успешный вход в систему, приложение пропустит страницу входа и перейдет на MainMenu.java. У меня теперь есть:

public class Login extends Activity implements OnClickListener, TaskCompleteCallback{ first_time_check(); ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.configure); ...} private boolean first_time_check() { String first = mPreferences.getString("first", null); if((first == null)){ Intent i = new Intent(Login.this, MainMenu.class); startActivity(i); } return false; } ... SharedPreferences.Editor editor = mPreferences.edit(); editor.putString("first", value); ... editor.commit(); // Close the activity Intent i = new Intent(Login.this, MainMenu.class); startActivity(i); } 

Но я получаю FCs. Что-то не так с тем, как я реализовал SharedPreferences?

Solutions Collecting From Web of "Android проверяет, что пользователь зарегистрировался раньше, иначе начните действие входа"

Ваш код просто никогда не вызывает этот first_time_check() , поэтому автоматический переадресация в случае возвращающегося пользователя не работает.

Вы можете в onCreate() сделать

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); first_time_check(); setContentView(R.layout.configure); ...} 

Поэтому для нового пользователя first_time_check() его на страницу входа в систему, иначе будет отображаться текущий макет, и он может продолжить работу на этой странице.

Вы используете общие настройки. Это хорошо.

В этой ссылке приведен небольшой пример. Вероятно, это решит проблему.

http://developer.android.com/guide/topics/data/data-storage.html

В принципе, я не вижу, как вы читаете сохраненную ценность. Вы храните его, а затем фиксируете. Но нет кода, в котором вы его читаете. Только когда вы его прочитаете, вы можете решить, какая деятельность должна быть запущена. Вы должны вызвать first_time_check (), чтобы решить эту проблему.

Надеюсь, я смог вам помочь.

Вы можете сохранить данные журнала в onSaveInstanceState (), а затем восстановить его, когда ваша активность перезапустится. Например, внутри onRestore ().

Это можно сделать двумя способами. Один из них хранит их в глобальных переменных, а второй хранит данные в общих предпочтениях. См. Этот пример.