Eclipse project z 6. cvičení - Pozor, nejedná se o stejnou verzi jako je na eduxu! Tento projekt byl na mém cvičení mírně odlišný, než jak vypadalo oficiální zadání.
Hlavní rozdíl oproti oficiální variantě je, že se více (a lépe) používá samotný ContentProvider, o kterém celé cvičení bylo.
Magické objevení dat po jejich přidání a zmizení po jejich smazání je docíleno pomocí volání ContentResolver.notifyChange(...) a Cursor.setNotificationUri(...). CursorAdapter si na cursoru registruje vlastní ContentObserver, který po notifikaci cursoru (ke které dojde v ContentProvideru) na něm zavolá requery() a načte tak data znovu.
Dejte si pozor na to, že kód není optimální z hlediska využití UI threadu.
Všechny dlouho trvající operace (dotaz do databáze, práce se soubory) by se měly provádět mimo UI thread.
Buď můžete použít AsyncTask, jak bylo ukázáno na cvičení, nebo ještě lépe - využít Loaders framework, který je v novějších verzích Androidu a je backportovaný pomocí Compatibility library.
Další nedostatek: při přístupu k externímu úložišti (SD karta) byste vždy měli zkontrolovat, zda je dostupné, pomocí Environment.getExternalStorageState()
bi-and/cviceni/cviceni_6.txt · Poslední úprava: 2012/05/01 20:30 autor: cermak