我正在製作一個Capstone項目我非常需要幫助,現在已經停留了幾天,我想在用戶點擊一個按鈕時向Firebase發送一個位置更新。更新設置爲每3秒發送一次位置更改。但問題是,只有按下按鈕纔會發送座標,而不會持續發送位置更改的更新。這裏是我的代碼OnLocationChange發送座標到Firebase
Start = (Button) findViewById(R.id.btnLoc);
Stop = (Button) findViewById(R.id.btnStopSend);
mRef = new Firebase ("FIREBASE URL");
Start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Firebase busCoords = mRef.child("Location");
busCoords.setValue(location.getLatitude()+ ", "+location.getLongitude());
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
locationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
//noinspection MissingPermission
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,3000,1000,listener);
}
});
Stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(locationManager != null){
//noinspection MissingPermission
locationManager.removeUpdates(listener);
}
}
});
}
您是否希望將此運行作爲服務在應用程序關閉時持續運行,或者您希望它僅在應用程序打開時運行?我認爲你可能會遇到Android的Activity Lifecycle問題。 –
我的活動有兩個按鈕,發送和停止。當用戶點擊發送它不斷地發送當前位置在每個時間間隔 –
同樣,你是否期望在活動在後臺或當活動在屏幕上可見時運行?我認爲您遇到了「活動生命週期」中的問題。 –