gpt4 book ai didi

android - 如何从在线数据库获取最新的最后一行并每 10 秒刷新一次(Kinvey)

转载 作者:行者123 更新时间:2023-11-29 22:36:53 26 4
gpt4 key购买 nike

请任何人帮助我解决以下问题:

以下方法从在线数据库检索数据,我能够显示它,但问题是显示时间太长,大约 1 分钟,因为应用程序搜索数据库以显示数据库的最新结果。任何人都可以帮我申请直接进入表格的最后一行吗?以便应用程序可以花费几秒钟的时间来显示数据,并且还能够每 10 秒刷新一次。

方法如下:

private class GetAllProductsTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {

myJavaClient = new Client.Builder(appKey, mastersecret,getApplicationContext()).build();
myJavaClient.enableDebugLogging();
myJavaClient.ping(new KinveyPingCallback() {

@Override
public void onSuccess(Boolean arg0) {
System.out.print("Success");
}

@Override
public void onFailure(Throwable arg0) {
System.out.println("Failure");
}
});

try {

myJavaClient.user().loginBlocking(appKey, mastersecret).execute();
System.out.println("Client login -> "+ myJavaClient.user().isUserLoggedIn());

} catch (IOException e) {

System.out.println("Couldn't login -> " + e);

e.printStackTrace();
}

// Ignore for now

myJavaClient.appData("tdSensorData", Sensor.class).get(new KinveyListCallback<Sensor>() {

@Override
public void onSuccess(Sensor[] result) {

Toast.makeText(MainActivity.this,"Get All Worked!\n Got: " + result.length,Toast.LENGTH_LONG).show();


for(Sensor eventID : result)
{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String currentDateandTime = sdf.format(new Date());

String currentDate = currentDateandTime.substring(0,10);

String times = eventID.getDatetime();
String tim1 = times.substring(0,10);

if (currentDate .compareTo(tim1)==0){

String sens1 = eventID.getSensorr1().toString();
Senso1.setText(sens1);

String sens2 = eventID.getSensorr2().toString();
Senso2.setText(sens2);

String sens3 = eventID.getSensorr3().toString();
Senso3.setText(sens3);

String tmp = eventID.getTemp();
temper.setText(tmp+ " " + "°C");

String dat = eventID.getDatetime();
Device1.setText(dat);
}

}

}

@Override
public void onFailure(Throwable error) {
Toast.makeText(MainActivity.this,
"Get All error: " + error.getMessage(),
Toast.LENGTH_LONG).show();
}

});

return null;

}
}

}

最佳答案

您可以再放置一个名为“获取的数据”的 bool 列,而不是创建或更新的数据时间。当第一次插入时,您可以将“获取的数据”值设置为 false,当客户端获取它时,您可以将其更改为“true”,表示它已经获取。您可以根据此列值获取数据,例如查询中的“fetched data=false”。

您可以实现 GCM,只要服务器有新数据可用,它就会自动将其发送到客户端。希望对您有帮助。

关于android - 如何从在线数据库获取最新的最后一行并每 10 秒刷新一次(Kinvey),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com