Подтвердить что ты не робот

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?

4b9b3361

Ответ 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

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