1) Многопоточность
лично мне нравится AsyncTasks, потому что они чистый способ обработки многопоточности. (Обратите внимание, что AsyncTasks работают на отдельных потоках в части doInBackground())
Однако, если вы считаете, что рабочая нагрузка слишком интенсивна для AsyncTask, чем руководство разработчика Android рекомендует использовать вместо этого службу фона.
Мне кажется, что вы можете выполнить последовательность из двух асинтактов: первая захватывает значения lat/long с сервера в doInBackground(). В первом onPostExecute() вы можете запустить второй, указав ему значения сервера. Второй может затем вычислить расстояние в методе doInBackground().
2) Деятельность и ListAdapter
Объединить оба вида деятельности в одно точно. Несмотря на то, FragmentActivity, очевидно, не может быть ListActivity, вы можете вытащить ListView из XML с
ListView list = (ListView) findViewById(R.id.list);
Или программно создать представление списка с
ListView list = new ListView(this);
Тогда вы можете создать экземпляр любого типа адаптера класс, который вы хотите, и установите его в ListView. Следующий пример показывает это с помощью CursorAdapter, но это будет работать с любым адаптером, обычаем или встроенным в.
CursorAdapter dataAdapter = new SimpleCursorAdapter(
getActivity(), R.layout.list_spot,
cursor,
columns,
to,
0);
list.setAdapter(dataAdapter);
Надеется, что это помогает!
Вы знаете, что AsyncTask использует потоки правильно? – Simas
Я не знаком с темами. Вот почему я спрашиваю – user3649152
Существует только два способа выполнения параллельной команды: один использует Process, а другой использует Thread. Я рекомендую вам прочитать [эту статью.] (Http://docs.oracle.com/javase/tutorial/essential/concurrency/procthread.html) – Paulo