Você está na página 1de 37

Persistncia de dados em aplicaes Android

@netomarin @Globalcode

sbado, 26 de novembro de 2011

Vamos falar de... Shared Preferences SQLite Content Providers BackupManager


sbado, 26 de novembro de 2011

SharedPreferences
Framework para persistir pares de

chave-valor de dados primitivos.

sbado, 26 de novembro de 2011

Onde e para o que usar?

Preferncias
sbado, 26 de novembro de 2011

Valores padro

Lendo preferncias...
//default da aplicao Context c = getApplicationContext(); SharedPreferences defaultPrefs = PreferenceManager. getDefaultSharedPreferences(c); //Obtendo um SharedPreferences especfico SharedPreferences prefs = getSharedPreferences(SETTINGS, MODE_PRIVATE); //Lendo valores primitivos String email = prefs.getString(email, netomarin@gmail.com); boolean logado = prefs.getBoolean(logado, false); float volume = prefs.getFloat(volume, 1.0f); int idUsuario = prefs.getInt(idUsuario, -1); long timestamp = prefs.getLong(timestamp, 0);

http://developer.android.com/reference/android/content/ SharedPreferences.html
sbado, 26 de novembro de 2011

Gravando preferncias...
//Obtendo o SharedPreferences.Editor SharedPreferences prefs = getSharedPreferences(SETTINGS, MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); //atribuindo valores editor.putString(email, netomarin@globalcode.com.br); editor.putBoolean(logado, true); editor.putFloat(volume, 4.0f); editor.putInt(idUsuario, 779988); editor.putLong(timestamp, System.currentTimeMillis()); //COMMITANDO !! ** OBRIGATRIO ** editor.commit();

http://developer.android.com/reference/android/content/ SharedPreferences.Editor.html
sbado, 26 de novembro de 2011

Tem banco de dados ?

sbado, 26 de novembro de 2011

SQLite

Persistncia com banco de dados relacional para


Android !

sbado, 26 de novembro de 2011

Saudades do SQL ?

Criar tabelas Inserir dados Consultar Apagar e tudo mais que voc sempre sentiu falta...

sbado, 26 de novembro de 2011

Criando e denindo a base de dados...


//criar classe que extende SQLiteOpenHelper public class MeuBancoDeDados extends SQLiteOpenHelper { /** * implementar mtodos: * onCreate * onUpgrade * * E opcionalmente onOpen */

sbado, 26 de novembro de 2011

Inserindo dados...
//Obtendo instncia do banco de dados DatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getWritableDatabase(); //Criando objeto para inserir no SQLite ContentValues v = new ContentValues(); v.put(categoria, categoria); v.put(resumo, resumo); v.put(descricao, descricao); litedb.insert(todo, null, v);

sbado, 26 de novembro de 2011

Obtendo dados....
//Obtendo instncia do banco de dados DatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getReadableDatabase(); //Efetuando select :-) String sql = SELECT * FROM todo; Cursor c = litedb.rawQuery(sql, null); c.moveToFirst(); while(c.moveToNext()) { c.getString(0); //categoria c.getString(1); //resumo c.getString(2); //descricao }

sbado, 26 de novembro de 2011

Criar tabela? Na mo ? INSERT ?!


sbado, 26 de novembro de 2011

SQLite Database Browser

sbado, 26 de novembro de 2011

Dados embarcados...
Prs: Possvel pr-carregar a aplicao com dados. Melhoria no desempenho de criao. Edio grca do banco de dados. Contra: Aumenta o tamanho da aplicao. Dados podem ser extrados do seu APK.

sbado, 26 de novembro de 2011

ContentProvider
nica forma de

compartilhar dados entre diferentes aplicaes.


sbado, 26 de novembro de 2011

Como funciona ?

sbado, 26 de novembro de 2011

Providers do sistema
Contatos Fotos Calendrio (disponvel a partir do ICS)

sbado, 26 de novembro de 2011

Lendo os contatos
//Obtendo os contatos Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); //Navegando pelos contatos while (contacts.moveToNext()) { // Id do contato String contactID = contacts.getString(contacts. getColumnIndex(ContactsContract.Contacts._ID)); // Nome do contato (FirstName + LastName) String contactName = contacts.getString(contacts. getColumnIndex(ContactsContract.Data.DISPLAY_NAME));

http://developer.android.com/guide/topics/providers/ content-providers.html
sbado, 26 de novembro de 2011

Crie o seu ContentProvider

sbado, 26 de novembro de 2011

E como eu acesso o meu banco pra sincronizar?


sbado, 26 de novembro de 2011

BackupManager

Backup na cloud de dados salvos em preferncias ou conguraes. Tambm de arquivos pequenos.


sbado, 26 de novembro de 2011

Obter uma API Key:


http://code.google.com/android/backup/signup.html

sbado, 26 de novembro de 2011

Extender BackupAgentHelper
Deve ter pelo menos um backup helpers: 1. SharedPreferencesBackupHelper Backup de SharedPreferences! 2. FileBackupHelper Backup de arquivos do internal storage.

sbado, 26 de novembro de 2011

Fazer o backup...

Noticar o BackupManager com a chamada do mtodo dataChanged()

sbado, 26 de novembro de 2011

AndroidManifest.xml

<application android:label="MyApplication" android:backupAgent="MyBackupAgent" android:allowBackup="true" > ... <meta-data android:name="com.google.android.backup.api_key" android:value="SUA_API_KEY" /> </application>

sbado, 26 de novembro de 2011

WTF... J acabou?
sbado, 26 de novembro de 2011

Minicurso Gratuito Persistncia de dados em aplicaes Android

15 / dezembro -19h s 22h Presencial e Online bit.ly/tI8bbN


sbado, 26 de novembro de 2011

sbado, 26 de novembro de 2011

Espere mais um pouco...

Temos mais 3 novidades para vocs!

sbado, 26 de novembro de 2011

TRS novos TREINAMENTOS ANDROID no portiflio da GLOBALCODE !

sbado, 26 de novembro de 2011

Introduo plataforma Android. http://bit.ly/vP5pjO

sbado, 26 de novembro de 2011

Programando para Android. http://bit.ly/gc-android

sbado, 26 de novembro de 2011

Criando Widgets e Noticaes C2DM http://bit.ly/vxKhXz

sbado, 26 de novembro de 2011

Criando aplicaes Android com GPS, mapas e sensores. http://bit.ly/ssexRv

sbado, 26 de novembro de 2011

Pra saber mais:


http://blog.globalcode.com.br/ 2011/11/novidades-android-naglobalcode.html

sbado, 26 de novembro de 2011

@netomarin
slideshare.net/netomarin
sbado, 26 de novembro de 2011

Você também pode gostar