更改了onlocation的日期时间更改

时间:2014-06-02 08:58:19

标签: android web-services datetime locationlistener

我创建了一个发布到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服务所需的所有信息

2 个答案:

答案 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());
    ....

}