2012-12-19 10 views
5

Io uso il seguente metodo per eliminare tutti gli eventi su un calendario di Google a livello locale (ICS & JB):Eliminazione di tutti gli eventi del calendario locale funziona, ma genera un errore che troppi eventi ha cancellato

public void deleteAll(){ 
    String selection = "(" + CalendarContract.Events.CALENDAR_ID + " = ?)"; 
    String[] selectionArgs = new String[] { Integer.toString(this.calId) }; 
    ContentResolver cr = context.getContentResolver(); 
    int rows = cr.delete(CalendarContract.Events.CONTENT_URI, selection, selectionArgs); 
    Log.d(TAG, rows + " events deleted"); 
} 

tutto funziona benissimo, ma ottengo un avvertimento fastidioso: Troppi calendario elimina

Delete limit exceeded 

There are 21 deleted items for Calendar, account 
[email protected] What would you like to do?" 

Delete the items. 
Undo the deletes. 
Do nothing for now. 

Qual è la ragione per l'errore per essere mostrato, e qualcuno sa un modo per evitarlo? sto utilizzando HTC One X-

saluti R

+0

Hai provato a eliminare un evento particolare/specifico solo dal tuo calendario? Se l'eliminazione di 1 per 1 funziona senza ricevere l'avviso, sto pensando di iterare gli eventi ed eliminarlo 1 per 1. –

+0

Posso confermare che anche il tentativo di eliminare 1 per 1 dall'ID evento non funziona. Ogni volta che provi a eliminare un numero sufficiente di eventi che attivano quel messaggio (non sapendo quale sia il limite), ciò accade comunque indipendentemente dall'eliminazione 1 per 1 o di tutto in una volta. –

risposta

0

ho incontrato un paio di volte, è molto fastidioso! Questo è purtroppo un problema noto e in corso. C'è uno existing bug report su di esso, ma non è stato ancora corretto.

Per risolvere il problema, è necessario cancellare la cache del calendario locale.

Per fare ciò, effettuare le seguenti operazioni sul dispositivo:

della Android:

Settings > Applications > Manage Applications > Calendar Storage > Clear data 

HTC Sense:

Settings > Apps > All > Calendar Storage > Clear data 

Una volta fatto questo, il problema andrà via.

+0

È grandioso, ma gli utenti della mia app non dovrebbero essere obbligati a farlo, giusto? In particolare, non voglio che vedano l'avviso di notifica, dal momento che quello che stanno facendo loro volevano davvero fare ... non ha senso infastidirli di nuovo. C'è un modo per richiedere automaticamente di cancellare queste cache? –

+0

Per quanto ne so, non c'è nulla che possa essere fatto a livello di codice per silenziare il prompt; mentre puoi cancellare i dati delle app a livello di codice, puoi cancellare solo i dati della tua app, non di Google Calendar. È un bug. –

+0

Per me (Android 4.0.4) il percorso per cancellare i dati era Impostazioni> Dispositivo> Archiviazione> Archiviazione interna> App> Tutto> Archiviazione calendario (NON calendario)> Archiviazione> Cancella dati. HTH qualcuno. Brewmanz – brewmanz

Problemi correlati