#android #android-fragments #android-recyclerview
#Android #android-фрагменты #android-recyclerview
Вопрос:
В моем приложении есть recyclerview. В первый раз, когда я открываю фрагмент, он отправляет запрос api и обновляет recyclerview.Когда я снова открою тот же фрагмент, он снова отправит запрос и обновит recycleview, даже если данные были загружены ранее.Поэтому, чтобы избежать этого, я использовал статическую логическую переменную, чтобы проверить, были ли загружены данные или нет.Таким образом, это позволяет избежать повторяющихся сетевых вызовов, но предположим, что я использую приложение, и данные были загружены, но если данные изменены с внутреннего сервера, это не отразится в моем приложении, поскольку логическая переменная будет установлена true при первой загрузке и не будет выполнять никаких других вызовов api. Итак, каков стандартный подход к этому.
Комментарии:
1. Проверьте push-уведомления, чтобы ваши устройства знали, что новые данные доступны, и соединение должно быть выполнено снова.
2. @Android jack: опубликуйте свой код что-нибудь о том, что вы сделали
3. @Android jack прикрепите временную метку с ответом, если предварительно определено, что данные будут изменены через это время, сравните первую временную метку, а затем выполните вызов api, кроме того, используете ли вы какую-либо сетевую библиотеку?
4. @Jai: я уже упоминал, что я пробовал. Я не прошу готовый код, а для выполнения стандартной процедуры. Каждый раз, когда мы просто не можем опубликовать код, это было бы слишком долго для публикации.
5. согласен с @zozelfelfo. Push-уведомление — это правильный способ получить новые данные, если что-то изменится в серверной части.
Ответ №1:
Поскольку кто-то уже упоминал здесь, вы можете использовать push-уведомление, чтобы уведомить свое приложение о том, что в данных из серверной части произошли некоторые изменения, и вы можете снова обратиться к api для обновления данных. Вы можете проверить эту ссылку
Кроме этого, вы всегда можете отслеживать время, когда был сделан ваш последний сетевой вызов. Если время превышает X количество часов / дней, вы можете снова обратиться к API. Надеюсь, это ответит на ваш запрос.