Эффективный способ интернет-звонков в android

Мое текущее приложение для Android - это мобильное приложение Azure, в котором пользователь может заказать любую услугу. Мне нужно показать статус его заказа, например, заказан, ожидает завершения во фрагменте. Я сейчас делаю это, вызывая api, но каждый раз, когда создаются фрагменты, он вызывает api, даже если данные не меняются. Каково возможное и эффективное решение для этого.

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

Khemraj Sharma 01.05.2018 07:22

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

Khemraj Sharma 01.05.2018 07:23
1
2
73
1

Ответы 1

Для вашего сценария данные о заказах хранятся в вашей серверной базе данных. Хотя вы можете хранить полученные данные заказа в локальном хранилище (например, SQLite и т. д.) На своем мобильном клиенте, чтобы получить последний статус заказа, вы должны явно вызвать серверную часть мобильного приложения для получения последней информации о заказе и обновить локальный статус заказа. На этом этапе вы можете попытаться уменьшить размер данных ответа, возвращаемых вашим сервером, указав минимальное количество полей в своем запросе. Подробности вы могли следить за .select()предложение о выборе поля.

Более того, вы также можете последовать предложению Хемраджа о подходе к уведомлению, но для push-уведомления может потребоваться взаимодействие с пользователем.

Другие вопросы по теме