6. cvičení - Databáze, Content Provider a práce se soubory

Cvičení na Eduxu

  • 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
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki