Envie dados de uma atividade para outra regularmente
Eu obtenho minha localização na Atividade principal regularmente pelo provedor de localização fundida a cada 30 segundos. Eu não uso serviço ou qualquer outra coisa. eu recebo localização exatamente quando o usuário está no aplicativo.
Na Atividade principal, tenho um botão que, quando pressionado, vai para a Segunda atividade e mostra minha localização atual no mapa (por esta linha: googleMap.setMyLocationEnabled (true)).
1- Quero enviar meus dados de localização da Atividade Principal para a Segunda Atividade regularmente (a cada 30 segundos que o método onLocationChange chamou), para mover o marcador do meu local atual. Como posso enviar dados de localização regularmente? e onde eu coloquei códigos para isso? no método onChangedLocation? (Ou não é necessário? e minha localização muda automaticamente quando é alterada?)
Além disso, eu envio minha localização atual para o servidor, no método OnLocationChanged, pela biblioteca Volley, assim:
@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();
...
}
...
}
}
Se houver uma resposta do servidor, dependendo do tipo de resposta, eu quero fazer algo; por exemplo, mostre a mensagem relacionada ao usuário, adicione um marcador como destino no mapa e faça o caminho entre dois marcadores.
2- O método onLocationChanged funciona mesmo quando estamos em outras atividades?
3- Se sim, o AlertDialog pode aparecer em todas as atividades? (não apenas na Atividade principal que o método showAlertDialog e LocationListener estão lá).
4- Existe uma maneira melhor de lidar com respostas e fazer coisas relacionadas?