Я хочу запустить код один раз в деятельности - PullRequest
0 голосов
/ 11 марта 2020

У меня есть активность, которую я go туда и обратно. но я хочу, чтобы этот код запускался один раз внутри него, даже если я переключаю активность.

//get the Current user id(uid)
    userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
    Log.i("UID",userId);
    orderDatabaseReference = FirebaseDatabase.getInstance().getReference("Orders").child(userId);
    id = orderDatabaseReference.push().getKey();

Я знаю методы onStart, onResume ... но они также одинаковы

Ответы [ 2 ]

3 голосов
/ 11 марта 2020

Если вы go переходите от одного занятия к другому и возвращаетесь, все ваши методы снова срабатывают, так как жизненный цикл начинается снова, это также происходит при повороте устройства, для лучшего понимания того, как сохранить данные, вы можете увидеть это, если вы хотите знать о Android жизненном цикле, прочитайте это и это

Вы можете использовать ViewModel как часть Android Компоненты архитектуры .

Руководство по архитектуре приложения

ViewModel документация

Вы также можете использовать Номер , если вы хотите сохранить данные локально.

1 голос
/ 11 марта 2020

Скорее всего, вы хотите поместить этот код в onCreate(), который запускается один раз при создании экземпляра Activity. Он не запускается, когда пользователь переходит к другому действию и возвращается, если первое действие не будет уничтожено за это время. Но тогда, скорее всего, вам все равно придется обновить sh ваше подключение к Firebase. Как указывает Гастон в своем ответе, вам нужно узнать обо всем жизненном цикле Android и понять, когда происходит каждое событие, чтобы решить, куда писать, и писать свой код.

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