Atualização SQLiteDatabase não está funcionando?

Eu estou tentando obter db.update para atualizar uma das linhas do meu banco de dados com novos valores, mas não parece estar salvando. Eu olhei minha sintaxe, mas não consigo obter os dados para salvar. A função de inserção está funcionando, mas não está atualizada. Qualquer ajuda seria apreciada. Abaixo está minha classe de dados que usa um objeto DbHelper.

  public class Data {
    static final String TAG = "Data";

    public static final String DB_NAME = "data.db";
    public static final String TABLE_NAME = "tasks";
    public static final String C_ID = "_id";
    public static final String C_TASK = "taskname";
    public static final String C_DUE_DATE = "due_date";
    public static final String C_PRIORITY = "priority";
    public static final int DB_VERSION = 1;

    Context context;
    DbHelper dbHelper;
    SQLiteDatabase db;

    public Data(Context context) {
        this.context = context;
        dbHelper = new DbHelper();
    }

    public void insert(ToDoItem task) {
        db = dbHelper.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(C_TASK, task.getTask());
        values.put(C_PRIORITY, task.getPriority());

        db.insert(TABLE_NAME, null, values);
    }
    public void update(int id, ToDoItem task) {
    ContentValues values = new ContentValues();
    values.put(C_ID, id);
    values.put(C_TASK, task.getTask());
    values.put(C_PRIORITY, task.getPriority());

    String[] whereArgs = {String.valueOf(id)};

    db.update(TABLE_NAME, values, C_ID +" =?", whereArgs);
    System.out.println(db.update(TABLE_NAME, values, C_ID +" =?", whereArgs));

    Log.d(TAG, "updating task " + db.toString() +" "+ id + " to priority " + task.getPriority());
}

    public void delete(int id){
        db.delete(TABLE_NAME, C_ID+"="+id, null);
    }

    public Cursor queueAll(){
        db = dbHelper.getWritableDatabase();

        String[] columns = new String[]{C_ID, C_TASK, C_DUE_DATE, C_PRIORITY};

        Cursor cursor = db.query(TABLE_NAME, columns,   
                null, null, null, null, null);
        return cursor;
     }

    class DbHelper extends SQLiteOpenHelper {

        public DbHelper() {
            super(context, DB_NAME, null, DB_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            String sql = String.format("create table %s" +
                        "(%s int primary key, %s text, %s text, %s int)", 
                        TABLE_NAME, C_ID, C_TASK, C_DUE_DATE, C_PRIORITY);

            Log.d(TAG, "onCreate with SQL:"+sql);

            db.execSQL(sql);    
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("drop if exists " + TABLE_NAME);
            onCreate(db);
        }
    }

}

Aqui está a classe de objeto ToDoItem que estou tentando atualizar a prioridade quando um item é clicado

     public class ToDoItem {
        private String task;
        private String dueDate;
        private int priority;

        public ToDoItem(String task) {
        this.task = task;
        this.priority = 1;
    }

    public ToDoItem(String task, String dueDate) {
        this.task = task;
        this.dueDate = dueDate;
        this.priority = 1;
    }

    public ToDoItem(String task, int priority) {
        this.task = task;
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1;
    }

    public ToDoItem(String task, String dueDate, int priority) {
        this.task = task;
        this.dueDate = dueDate;
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1; 
    }

    public String getTask() {
        return task;
    }

    public void setTask(String task) {
        this.task = task;
    }

    public String getDueDate() {
        return dueDate;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public int getPriority() {
        return priority;
    }

    public void setPriority(int priority) {
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1;
    }
}

Finalmente aqui está o meu onListItemClickListener ele usa um ArrayList de ToDoItems, altera a prioridade e chama o método de atualização da minha classe de dados. No entanto, os valores da linha que estou tentando atualizar permanecem inalterados. Eu usei o Log.d para verificar se os valores corretos estavam sendo passados ​​e eles estavam. Por alguma razão, as mudanças não estão acontecendo. Qualquer ajuda seria apreciada.

        todoList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, final int arg2,
                long arg3) {

            if(soundEnabled) {
                playSound();
            }

            // Change the priority of the item inside the arrayList todoItems
            todoItems.get(arg2).setPriority(todoItems.get(arg2).getPriority() + 1);
            String name = todoItems.get(arg2).getTask();
            int priority = todoItems.get(arg2).getPriority();
            final ToDoItem task = new ToDoItem(name, priority);

            // Get the position of the task in the database
            int id = arg2 + 1;
            data.update(id, task);


});

questionAnswers(3)

yourAnswerToTheQuestion