Android проверяет пользователя, вошедшего ранее, иначе начните вход в систему - PullRequest
32 голосов
/ 16 июля 2011

Я хочу, чтобы действие входа в систему началось, когда пользователь запускает приложение, но не входил в систему раньше. Если успешный вход в систему был завершен ранее, приложение пропустит страницу входа и перейдет к 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);
    }           

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

Ответы [ 4 ]

14 голосов
/ 16 июля 2011

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

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

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    first_time_check();

    setContentView(R.layout.configure);

    ...}

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

5 голосов
/ 16 июля 2011

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

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

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

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

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

1 голос
/ 15 мая 2014

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

1 голос
/ 25 февраля 2013

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

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