【发布时间】:2016-12-29 13:27:19
【问题描述】:
我正在制作一个 Capstone 项目,我急需帮助,这几天被困在这上面,我想在用户单击按钮时向 Firebase 发送位置更新。更新设置为在位置更改时每 3 秒发送一次。但问题是它只会在按下按钮后发送坐标,而不是持续发送位置变化的更新。这是我的代码
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 问题。
-
我的活动有两个按钮,发送和停止。当用户点击发送时,它会在每个间隔连续发送当前位置
-
再一次,您希望在 Activity 在后台运行还是仅在 Activity 在屏幕上可见时运行?我认为您遇到了 Activity 生命周期的问题。
-
活动在屏幕上时
-
你是在模拟器上运行这个吗?
标签: android google-maps firebase firebase-realtime-database