Как мне навсегда сохранить имя пользователя из одноразового действия под названием Activity в Android (Java)? - PullRequest
0 голосов
/ 04 августа 2020

Надеюсь, у вас отличный день.

1: Теперь у меня есть действие входа, которое вызывается только для один раз после установки приложения и запрашивает только userName.

2: я сохраняю это userName в SharedPreferences, а затем отправляю значение этого SharedPreference намеренно своему домашнему действию.

3: Теперь в моем домашнем действии я сохраняю это имя пользователя полученные намерением в SharedPreference и отображать их, достаточно честно, и все работает нормально только для первого запуска приложения после установки.

4: Когда я закрываю приложение и повторно запускаю его, тогда значение userName установлено на null , несмотря на то, что активность входа в систему никогда не вызывалась, насколько я понимаю, SharedPreference в домашней активности не должен обновляться до нуля, если действие входа никогда не вызывается правильно ? так почему же мое значение SharedPreference становится null при втором запуске?

5: Мне нужен способ, чтобы мое значение userName в домашней активности никогда не обновлялось при втором запуске приложения , я также хочу быть осведомленным, если мои концепции неверны.

6: Если эти 5 пунктов были недостаточно ясны, ** я хочу отправить данные из действие, которое вызывается только один раз для одного обычного действия и сохраняет его постоянно без каких-либо обновлений. **

7: Аналогичным примером может быть приложение ShareIt , которое запрашивает имя пользователя один раз, и оно сохраняется постоянно в следующем действии.

1 Ответ

0 голосов
/ 04 августа 2020

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

 if(!preferences1.getString("USERNAME","empty").equals("empty")){
            preferences2.edit().putString("UN",preferences1.getString("USERNAME","empty")).apply();
        }

Вместо null я просто использовал строку «empty», но можно также выбрать null.

...