Насколько я понимаю, вы пытаетесь одновременно запросить 300 000 записей из базы данных SQL на мобильном устройстве, и вам не хватает памяти.
300 000 записей - это много для мобильного устройства.Трудно представить, что все эти записи отображаются пользователю одновременно.Обычно в табличном представлении отображается 10-20, и, как пользователь прокручивает, он ожидает, что сможет увидеть больше.
Когда человек впервые загружает страницу, вам не нужно загружать все возможные объекты, на которые он может перейти.Вам просто нужно получить счет.По мере прокрутки пользователь может получать записи по мере необходимости.Например, вы сначала делаете запрос для первых 20, и, когда пользователь прокручивает, вы загружаете записи 21-40, а затем 41-60 и т. Д. Вы можете хранить то, что вы выбираете, в небольшом кэше и очищать их, когда пользователь прокручиваету вас не слишком много памяти в одно время.
Трудно дать лучший совет, не видя ваш код, но я надеюсь, что это поможет.