Мое текущее приложение для Android - это мобильное приложение Azure, в котором пользователь может заказать любую услугу. Мне нужно показать статус его заказа, например, заказан, ожидает завершения во фрагменте. Я сейчас делаю это, вызывая api, но каждый раз, когда создаются фрагменты, он вызывает api, даже если данные не меняются. Каково возможное и эффективное решение для этого.
Если вы не хотите вызывать api, вы можете сохранить свои данные в базе данных и загружать данные из базы данных вместо вызова api, всякий раз, когда данные изменяются с сервера, а затем отправлять уведомление на все устройства. Устройства аннулируют старые данные и снова получают новые данные из API.
Для вашего сценария данные о заказах хранятся в вашей серверной базе данных. Хотя вы можете хранить полученные данные заказа в локальном хранилище (например, SQLite и т. д.) На своем мобильном клиенте, чтобы получить последний статус заказа, вы должны явно вызвать серверную часть мобильного приложения для получения последней информации о заказе и обновить локальный статус заказа. На этом этапе вы можете попытаться уменьшить размер данных ответа, возвращаемых вашим сервером, указав минимальное количество полей в своем запросе. Подробности вы могли следить за .select()предложение о выборе поля.
Более того, вы также можете последовать предложению Хемраджа о подходе к уведомлению, но для push-уведомления может потребоваться взаимодействие с пользователем.
В вызове api нет ничего плохого, только вам нужно убедиться, что вы не вызываете api, если данные уже доступны в полях активности. Вы можете использовать swipeRefreshLayout, чтобы пользователь мог обновлять данные в любое время.