Что касается ограничения размера ключа: я считаю, что это просто максимальный размер строки. Здесь также есть ответ: Shared Preferences - максимальная длина одного значения
Максимальное количество пар ключ / значение: с помощью предпочтений Shared эти значения хранятся в XML-файлах, как указано в ответе выше, и вы можете иметь несколько XML-файлов sharePreference. Предполагаемый предел размера ограничен размером вашего приложения или объемом памяти, доступным на устройстве с помощью вашего приложения.
Если ваши значения предпочтений часто меняются, я хотел бы рассмотреть возможность использования локальных переменных для отслеживания текущего набора предпочтений, возможно, глобального одноэлементного класса. И сохраните изменения на диске, прежде чем приложение будет уничтожено / закрыто. Если вам не нравится эта идея, попробуйте использовать SharedPreferences, но обязательно используйте SharedPreferences.Editor.apply () вместо SharedPreferences.Editor.commit () для сохранения предпочтений (применить сохранения к диску асинхронно, выполнить сохранение синхронно).