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?
Ответы
Ответ 1
Ваш код просто никогда не вызывает этот first_time_check()
, поэтому автоматическая пересылка в случае возвращающегося пользователя не работает.
Вы можете в onCreate()
do
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
first_time_check();
setContentView(R.layout.configure);
...}
Итак, для нового пользователя first_time_check()
отправит его на страницу входа, иначе
будет отображаться текущий макет, и он может продолжить работу на этой странице.
Ответ 2
Вы используете общие настройки. Это хорошо.
Существует небольшой пример, приведенный в этой ссылке. Это, вероятно, решит проблему.
http://developer.android.com/guide/topics/data/data-storage.html
В принципе, я не вижу, как вы читаете сохраненное значение. Вы храните его, а затем фиксируете. Но нет кода, в котором вы его читаете. Только когда вы его прочитаете, вы можете решить, какая деятельность должна быть запущена. Вы должны вызвать first_time_check(), чтобы решить эту проблему.
Надеюсь, что смогу вам помочь.
Ответ 3
Вы можете сохранить данные журнала в методе onSaveInstanceState(), а затем восстановить его, когда ваша активность перезапустится. Например, внутри onRestore().
Ответ 4
Это можно сделать двумя способами. Один из них хранит их в глобальных переменных, а второй хранит данные в общих предпочтениях. см. этот пример.