2012-12-19 14 views
5

użyć następującej metody, aby usunąć wszystkie wydarzenia w kalendarzu google lokalnie (ICS & JB):Usuwanie wszystkich lokalnych wydarzeń w kalendarzu działa, ale powoduje błąd, że zbyt wiele zdarzeń został usunięty

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"); 
} 

to wszystko działa porządku, ale pojawia się przykry ostrzeżenie: Zbyt wiele kalendarz usuwa

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. 

Co jest przyczyną błędu, aby pokazać, a czy ktoś zna sposób, aby tego uniknąć? używam HTC One-X

Pozdrowienia R

+0

Czy próbowałeś usunąć konkretne/konkretne wydarzenie tylko z kalendarza? Jeśli usuwanie 1-do-1 działa bez otrzymania ostrzeżenia, myślę, aby powtórzyć zdarzenia i usunąć je 1-na-1. –

+0

Mogę potwierdzić, że próba usunięcia 1-by-1 według identyfikatora zdarzenia również nie działa. Za każdym razem, gdy spróbujesz usunąć wystarczającą liczbę zdarzeń, które wyzwalają tę wiadomość (nie wiedząc, co to jest limit), nadal dzieje się to niezależnie od tego, czy usuwane jest 1-do-1 czy wszystkie naraz. –

Odpowiedz

0

Zabrakło mi się to kilka razy, to bardzo irytujące! Jest to niestety znany i aktualny problem. Jest na nim existing bug report, ale wciąż nie został poprawiony.

Aby naprawić ten problem, wyczyść pamięć podręczną kalendarza lokalnego.

Aby to zrobić, wykonaj następujące czynności w urządzeniu:

Stock Androida:

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

HTC Sense:

Settings > Apps > All > Calendar Storage > Clear data 

Gdy to zrobisz, problem odejdzie.

+0

To świetnie, ale użytkownicy aplikacji nie powinni tego robić, prawda? Nie chcę, aby widzieli ostrzeżenie o powiadomieniu, ponieważ to, co robią, naprawdę chcieli zrobić. Nie ma sensu ponownie zawracać im głowy. Czy istnieje sposób automatycznego monitowania o wyczyszczenie tych pamięci podręcznych? –

+0

O ile mi wiadomo, nic nie można zrobić programowo, aby uciszyć podpowiedź; podczas gdy możesz programowo usuwać dane aplikacji, możesz wyczyścić tylko dane Twojej własnej aplikacji, a nie Kalendarza Google. To błąd. –

+0

Dla mnie (Android 4.0.4) ścieżka do wyczyszczenia danych to Ustawienia> Urządzenie> Pamięć> Pamięć wewnętrzna> Aplikacje> Wszystkie> Pamięć kalendarza (NIE Kalendarz)> Pamięć> Wyczyść dane. HTH ktoś. Brewmanz – brewmanz

Powiązane problemy