En mi opinión, una solución de mezcla debería ser mejor. ¿Por qué esto? Debido a que usted no sabe o se supone que en la mayoría de los contextos no puede saber cómo y cuántos contactos su aplicación necesitará enumerar. También cuántos contactos están almacenados en el teléfono. Si conocemos ambas respuestas, seguramente podemos tomar la solución de mayor aproximación.
Así que le sugiero que primero traiga un número de arreglo de contactos usando una matriz en memoria en una cadena de fondo, por ejemplo, los primeros 20. También si considera que su aplicación realizará más de una solicitud a este servicio. .será genial usar una especie de almacenamiento en caché. El peor enfoque debería ser llamar una y otra vez al servicio de contactos. Luego, para una solicitud de contacto # 21 puede traer los siguientes 20 y así sucesivamente.
Para que pueda utilizar las ventajas de ambos mundos y minimizar las desventajas también. Siempre depende de la aplicación y el contexto del que estamos hablando.