0
如果存在位置節點,我想從節點位置檢索數據。如果它存在,我希望它讀取緯度和經度值,並更改地圖上標記的位置。這一步必須每5秒重複一次。 現在,它檢索一次數據。我希望它不斷重複只有當位置節點可用如何在Android Studio中延遲一段時間後重復某個功能?
這是當前的代碼
busReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
usercount = ds.getChildrenCount();
for(int i = 1; i <= usercount; i++){
if(ds.hasChild(userid)){
busno = ds.getKey();
driverReference = mDatabaseReference.child("Busno").child(busno);
driverReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds1 : dataSnapshot.getChildren()) {
if(ds1.hasChild("location")) {
driverid = ds1.getKey();
locationReference = mDatabaseReference.child("Busno").child(busno).child(driverid).child("location");
locationReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String lat1 = dataSnapshot.child("latitude").getValue().toString();
latitude = Double.valueOf(lat1);
String lon1 = dataSnapshot.child("longitude").getValue().toString();
longitude = Double.valueOf(lon1);
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(sydney).title("Current Location"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
mMap.animateCamera(CameraUpdateFactory.zoomTo(17));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我希望過程在一段時間後重復。這就是我掙扎的地方 –
時間延遲沒有意義,只要價值發生變化,應用程序就會收到通知。 –
但這沒有發生。這就是爲什麼我要求時間延遲的幫助 –