0
我有下面这个方法从用户的设备将消息发送到服务器。我要救我发送的消息在SharedPreferences服务器的日期,并检查是否有新邮件进来,他们比SharedPreference日期目前然后我发的消息。我如何去做。的Android检查当前日期以前的日期保存在SharedPreference
我更新了我的问题与我如何检查日期,但我知道检查日期的方法不工作,因为任何时候我打电话给这种方法消息已经上传到服务器继续上传,但我只希望他们上传一次,除非新邮件进入
private void startSync() {
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri,new String[] { "_id", "thread_id", "address", "person", "date","body", "type" }, null, null, null);
startManagingCursor(cursor1);
String transaction = "";
String[] columns = new String[] { "address", "person", "date", "body","type" };
if (cursor1.getCount() > 0) {
String count = Integer.toString(cursor1.getCount());
while (cursor1.moveToNext()){
String address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
String name = cursor1.getString(cursor1.getColumnIndex(columns[1]));
Date date = new Date(cursor1.getLong(0));
formattedDate = new SimpleDateFormat("yyyy/MM/dd").format(date);
//date = cursor1.getString(cursor1.getColumnIndex(columns[2]));
String msg = cursor1.getString(cursor1.getColumnIndex(columns[3]));
type = cursor1.getInt(cursor1.getColumnIndex(columns[4]));
status = 1;
CreatedBy = userName;
ModifiedBy = userName;
if (address.equals("MobileMoney")){
transaction += msg;
long MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
long updDate = prefs.getLong("lastupdate", 0)/MILLIS_PER_DAY;
long currdate= System.currentTimeMillis()/MILLIS_PER_DAY;
if (!(updDate == currdate)) {
saveExternalTransactions(userId, type, status, transaction, formattedDate, CreatedBy, ModifiedBy);
SharedPreferences.Editor editor = prefs.edit();
editor.putLong("lastupdate", currdate);
editor.commit();
}
}
}
}
}
我无法理解有什么问题。你不知道如何将日期保存到共享前缀中?或者如何比较日期?或者是什么? –
@VladMatvienko所以你明白我的意思 –
你是在比较错误的日期,我更新了我的问题。 !(updDate == currdate)总是如此。 –