2015-04-01 27 views
0

我是kinvey的新手,我想從今天存儲的在線數據庫中獲得結果,並且我希望我的應用程序每10秒鐘都會刷新一次。從在線數據庫中檢索當天的數據

此刻我可以從在線數據庫中獲得結果並以簡單的形式顯示它,這裏是代碼。

public void getData(String sensorid){ 

     AsyncAppData<Sensor> mySensors = myJavaClient.appData("tdSensorData", Sensor.class); 
     mySensors.getEntity("5514e7c06356be824801c207",new KinveyClientCallback<Sensor>(){ 

      @Override 
      public void onFailure(Throwable arg0) { 

       Toast.makeText(getApplicationContext(),arg0.getMessage(),Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      public void onSuccess(Sensor sensor) { 

       String times = sensor.getDatetime(); 
       System.out.print(times); 


       float f1 = Float.parseFloat(sensor.getSensorr1());    
       String sens1 = Float.toString(f1);    
       Senso1.setText(sens1); 

       float f2 = Float.parseFloat(sensor.getSensorr2());    
       String sens2 = Float.toString(f2); 
       Senso2.setText(sens2); 

       float f3 = Float.parseFloat(sensor.getSensorr3());    
       String sens3 = Float.toString(f3); 
       Senso3.setText(sens3); 

       temper.setText(sensor.getTemp()+ " " + "°C"); 

      } 

     }); 
    } 

,這裏是我的GET和SET類

public class Sensor extends GenericJson{ 

    @Key("_id") 
    private String id; 

    @Key("DATETIME") 
    private String datetime; 

    @Key("MAC") 
    private String mac; 

    @Key("SENSOR_1") 
    private String sensorr1; 

    @Key("SENSOR_2") 
    private String sensorr2; 

    @Key("SENSOR_3") 
    private String sensorr3; 

    @Key("SENSOR_4") 
    private String sensorr4; 

    @Key("TEMP") 
    private String temp; 

    @Key("BAT") 
    private String bat; 


    public String getId() { 
     return id; 
    } 



    public void setId(String id) { 
     this.id = id; 
    } 



    public String getDatetime() { 
     return datetime; 
    } 



    public void setDatetime(String datetime) { 
     this.datetime = datetime; 
    } 



    public String getMac() { 
     return mac; 
    } 



    public void setMac(String mac) { 
     this.mac = mac; 
    } 



    public String getSensorr1() { 
     return sensorr1; 
    } 



    public void setSensorr1(String sensorr1) { 
     this.sensorr1 = sensorr1; 
    } 



    public String getSensorr2() { 
     return sensorr2; 
    } 



    public void setSensorr2(String sensorr2) { 
     this.sensorr2 = sensorr2; 
    } 



    public String getSensorr3() { 
     return sensorr3; 
    } 



    public void setSensorr3(String sensorr3) { 
     this.sensorr3 = sensorr3; 
    } 



    public String getSensorr4() { 
     return sensorr4; 
    } 



    public void setSensorr4(String sensorr4) { 
     this.sensorr4 = sensorr4; 
    } 



    public String getTemp() { 
     return temp; 
    } 



    public void setTemp(String temp) { 
     this.temp = temp; 
    } 



    public String getBat() { 
     return bat; 
    } 



    public void setBat(String bat) { 
     this.bat = bat; 
    } 


    public Sensor() { 
     // TODO Auto-generated constructor stub 
    } 
} 

這裏是我的網上數據庫中的數據的例子。

{"_id":"51a71254d06fdbee04000653","DATETIME":"2013-05-23T11:16:34Z","MAC":"0013a200407e0086","SENSOR_1":"91.19","SENSOR_2":"19.093333333333334","SENSOR_3":"439.3097042968143","SENSOR_4":"0.0","TEMP":"-17","BAT":"47","_acl":{"creator":"kid_VPuam4pfqf"},"_kmd":{"lmt":"2013-05-30T08:48:20.335Z","ect":"2013-05-30T08:48:20.335Z"}},{"_id":"51a71255d06fdbee04000654","DATETIME":"2013-05-23T11:17:33Z","MAC":"0013a200407e0086","SENSOR_1":"91.19","SENSOR_2":"19.093333333333334","SENSOR_3":"494.4776331634671","SENSOR_4":"0.0","TEMP":"-17","BAT":"47","_acl": 

會感謝您的幫助。

+0

那麼exacty不起作用? – Alexander 2015-04-01 08:14:01

+0

我無法獲取今天的數據,我無法刷新應用程序來獲取存儲在10秒前的數據 – 2015-04-01 08:21:45

+0

你只需要比較你的「DATETIME」和今天的日期。 – 2015-04-01 08:24:10

回答

0

檢查下列鏈接N修改代碼,

1)Best way to compare dates in Android

2)Compare two dates in Java

3)http://www.mkyong.com/java/how-to-compare-dates-in-java/

檢查下面的刷新數據每10第二代碼,

首先爲Handler聲明一個全局變量來更新線程的UI控件,像下面這樣

Handler mHandler = new Handler(); 

現在創建一個線程並使用while循環來定期使用線程的sleep方法執行任務。

new Thread(new Runnable() { 
     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      while (true) { 
       try { 
        Thread.sleep(10000); 
        mHandler.post(new Runnable() { 

         @Override 
         public void run() { 
          // TODO Auto-generated method stub 
          // Write your code here to update the UI. 
         } 
        }); 
       } catch (Exception e) { 
        // TODO: handle exception 
       } 
      } 
     } 
    }).start(); 
+0

謝謝@jignesh ive已經發現了這些鏈接,到目前爲止我很好,唯一剩下的就是讓我的應用程序每10秒刷新一次,最新結果 – 2015-04-01 09:33:58

+0

刷新數據每10秒請檢查我的代碼我已經爲你更新。 – 2015-04-01 09:50:12