可以请任何人帮助我解决以下问题:
以下方法从在线数据库中检索数据,我可以显示它,但问题是显示需要大约 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;
}
}
}