Как эффективно хранить данные для ArrayAdapter? - PullRequest
0 голосов
/ 30 октября 2018

Я хочу сделать простое AutoCompleteTextview , где будет автоматически предлагаться номер мобильного телефона при наборе пользователя. Я сделал что-то вроде следующего

    public class MainActivity extends AppCompatActivity {

        String dummyNumbers[] = {"01912953698","01912963698","01912963798","01712963698",
            "01716581932","01716581931","01716582931","01837338077","01837338078"};

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            AutoCompleteTextView edittext = (AutoCompleteTextView) findViewById(R.id.auto_suggestion);
            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,dummyNumbers);
            edittext.setAdapter(arrayAdapter);
    }
}

Отлично работает.

Теперь мой вопрос: если у меня есть база данных с 1 миллионом данных мобильных номеров, и я запрашиваю эти номера, а затем сохраняю их в моей переменной массива ' dummyNumbers ', будет ли это эффективно?

В обычном смысле хранение 1 миллиона данных в массиве во время выполнения, очевидно, является высоким потреблением памяти.

Есть ли какой-нибудь эффективный способ, который я хотел бы сделать или сохранить данные 1M, и выполнение операций с ними не создаст никаких проблем (Android каким-то образом справится с этим в фоновом режиме).

...