Split out the getting of nearest names task in LocationNameAdapter into AddressSuggestionsFetcher which wraps an AsyncTask for getting the addresses from Places API, and a listener interface that is executed in the onPostExecute of the task. Doing similar for loading Bitmaps by creating BitmapLoader.