我创建了一个发布到Web服务的Android应用程序。这应该检查用户位置,并根据其位置和日期时间提供该gps更新的相关信息。其余的功能工作正常,但日期时间始终保持不变,我不知道为什么。一些见解会证明是有帮助的。
以下是我的一些代码。
LocationListener的
String lati, longi, alti, timeStamp;
float speed;
int counter = 0;
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
@Override
public void onLocationChanged(Location location)
{
// TODO Auto-generated method stub
Log.d("Location", "Hello World");
lati = String.valueOf(location.getLatitude());
longi = String.valueOf(location.getLongitude());
alti = String.valueOf(location.getAltitude());
speed = location.getSpeed();
timeStamp = dateFormat.format(date);
counter++;
RequestInfo requestInfo = new RequestInfo(sessionID, lati, longi, alti, speed, timeStamp);
database.addRequest(requestInfo);
textView.setText("" + counter);
}
requestInfo是一个设置Web服务请求的类。这是一个构造函数,提供Web服务所需的所有信息
答案 0 :(得分:0)
当创建包含 date 的对象时,只创建一次实例 date 。因此它的价值保持不变。而是将其移到onLocationChanged
方法中。像这样:
@Override
public void onLocationChanged(Location location)
{
...
Date date = new Date();
timeStamp = dateFormat.format(date);
...
}
或者您可以使用Calendar class及其getTime()之类的方法,如here
答案 1 :(得分:0)
您使用相同的日期对象来获取日期和时间实例。 每次都使用新的Date对象。这适合我。
@Override
public void onLocationChanged(Location location)
{
....
timeStamp = dateFormat.format(new Date());
....
}