Регулярно отправляйте данные из одного занятия в другое
Я получаю свое местоположение в основной активности регулярно от провайдера локализованных данных каждые 30 секунд. Я не пользуюсь услугами или чем-то еще. я получаю местоположение только тогда, когда пользователь находится в приложении.
В Основном действии у меня есть кнопка, которая при нажатии переходит ко Второму действию и показывает мое текущее местоположение на карте (По этой строке: googleMap.setMyLocationEnabled (true)).
1- Я хочу регулярно отправлять данные о своем местоположении из основной активности во вторую активность (каждые 30 секунд, которую вызывал метод onLocationChange), чтобы переместить маркер моего текущего местоположения. Как я могу регулярно отправлять данные о местоположении? и где я положил коды для этого? в методе onChangedLocation? (Или это совсем не нужно? и моё местоположение переместится автоматически при его изменении?)
Кроме того, я отправляю свое текущее местоположение на сервер в методе OnLocationChanged библиотекой Volley следующим образом:
@Override
public void onLocatuionChanged(Location location){
if(location != null)
sendLocation(location);
}
private void sendLocation(Location location){
Map<String, String> params = new HashMap<String, String>();
params.put("latitude", String.valueOf(location.getLatitude();
params.put("longitude", String.valueOf(location.getLongitude();
jsonObjReq = new VolleyCustomReq(Method.POST,
URL, params,
new Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response){
if(response != null)
if(response.optString("type").equalsIgnoreCase("1")
showAlertDialog1();
else if(response.optString("type").equalsIgnoreCase("2")
showAlertDialog2();
else if(response.optString("type").equalsIgnoreCase("3")
showAlertDialog3();
else if(response.optString("type").equalsIgnoreCase("addNewMarker")
addNewMarkerOnMapAsDestinationAndMakePathBetweenBothOfYou();
...
}
...
}
}
Если есть ответ от сервера, в зависимости от типа ответа, я хочу что-то сделать; например, показать связанное сообщение пользователю, добавить маркер в качестве пункта назначения на карте и проложить путь между двумя маркерами.
2- Работает ли метод onLocationChanged, даже когда мы находимся в другой деятельности?
3- Если да, может ли AlertDialog показываться в каждой деятельности? (не только в Главном действии есть метод showAlertDialog и LocationListener).
4- Есть ли лучший способ обрабатывать ответы и делать связанные вещи?