Как так быстро встроенное в мой Android телефон приложение для SMS? - PullRequest
0 голосов
/ 01 августа 2020

Я создаю приложение Android SMS. Я использовал ContentResolver с URL = content://sms/inbox для чтения всех SMS из почтового ящика.

Но все же моему приложению требуется значительное количество времени для загрузки всех сообщений всякий раз, когда я запускаю приложение на своем физическом устройстве. (который содержит тысячи SMS).

С другой стороны, встроенное в мой телефон приложение для SMS показывает все сообщения, как только я запускаю приложение. Как это достигается с помощью встроенного приложения для SMS?

1 Ответ

1 голос
/ 01 августа 2020

ИМХО,

Они не все сообщения читают. При необходимости вы можете выполнить запрос с группировкой по отправителю с уникальным ключевым словом. Это даст вам список из 100-200 записей. Для первого экрана этого достаточно. По желанию, после этого вы запрашиваете 5 последних сообщений отправителей, чтобы предварительно загрузить их, чтобы ускорить доступ для чтения. А затем, при выборе отправителя, вы загружаете ТОЛЬКО сообщения отправителя (может быть, даже последние 50).

На основе этого URL: https://developer.android.com/reference/kotlin/android/content/ContentResolver У вас есть параметры «QUERY_SORT_DIRECTION_DESCENDING, QUERY_ARG_LIMIT, QUERY_ARG_SQL_GROUP_BY» который может помочь вам найти уникальных отправителей. Также вы можете рассмотреть возможность использования другого поставщика, например ContentProvider.

ОБНОВЛЕНИЕ: я могу только привести вам пример того, как это сделать в SQL. Что-то вроде:

select * from inbox GROUP BY sender.

Выдает список отправителей.

Кроме того, вы можете сохранить список в своих данных и периодически обновлять его.

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