我的应用程序是一个服务,每隔2秒检查收件箱中是否有新邮件(用于调试),但是当我收到新邮件时,应用程序仍显示旧值而不更新为新邮件(例如,如果我有2收件箱中的消息,现在我得到一个新的,应用程序仍然会告诉我,我有2条消息)。这是代码:
public class SMSS extends IntentService
{
Cursor inboxCursor = null;
Timer myTimer;
// ...
protected void onHandleIntent(Intent workIntent) {
inboxCursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);
Log.d("Cursor0", Integer.toString(inboxCursor.getPosition()));
// ...
myTimer = new Timer();
myTimer.scheduleAtFixedRate(new Task(jParser, getContentResolver()), START_TIME, RETRY_TIME);
}
}
public class Task extends TimerTask
{
Cursor inboxCursor = null;
public Task(ContentResolver contentResolver)
inboxCursor = contentResolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
}
public void run()
{
Log.d("Cursor0", Integer.toString(inboxCursor.getCount()));
}
我检查调试器以查看消息的数量是否已更改,但保持不变... 如何刷新/更新光标以获得真实值?
答案 0 :(得分:1)
我想刷新你需要再次查询的光标。 所以最好打电话
public void run()
{
inboxCursor = contentResolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
Log.d("Cursor0", Integer.toString(inboxCursor.getCount()));
}