我有一个聊天应用程序,我正在向正在发送的号码发送消息。现在我希望我应该将日期时间作为输入,并且应该为该特定日期时间发送消息。我在sqlite中保存日期时间。为此我在第一个消息中的while循环中有两个asynctask成功发送。在其他AsyncTask中,我收到了所有尚未发送的消息。我的Asynctask是:
while (true) {
String[] jobsNumbers = numbers.toArray(new String[numbers.size()]);
new SendJobs().execute(jobsNumbers);
destroy = true;
cursor = databaseHelperClass.getMessagesNotSent();
if (cursor != null && cursor.moveToFirst()) {
do {
Id = cursor.getInt(cursor.getColumnIndex("ID"));
jobMessageNotSent=cursor.getString(cursor.getColumnIndex("Message"));
startDatetimecursor.getString(cursor.getColumnIndex("StartDatetime"));
isComplete=cursor.getInt(cursor.getColumnIndex("isComplete"));
} while (cursor.moveToNext());
new SendMessages().execute(Id);
}
在这个asynctask中我得到的消息没有发送但是保存在数据库中。现在我的问题是while循环应该保持为真,消息应该只发送一次。要获取消息我的查询是
public Cursor getJobMessagesNotSent() {
db = this.getReadableDatabase();
String query = "select * from Jobs where isSent= 0 and
datetime('now') > senddate";
Cursor cursor = db.rawQuery(query, null);
return cursor;
}