如何刷新光标?

时间:2014-02-01 14:59:32

标签: android service cursor

我的应用程序是一个服务,每隔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()));
    }

我检查调试器以查看消息的数量是否已更改,但保持不变... 如何刷新/更新光标以获得真实值?

1 个答案:

答案 0 :(得分:1)

我想刷新你需要再次查询的光标。 所以最好打电话

public void run()
{
inboxCursor = contentResolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
Log.d("Cursor0", Integer.toString(inboxCursor.getCount()));
}