A persistência de dados em qualquer tipo de aplicação sempre é um assunto muito importante, principalmente em aplicações móveis onde diversos fatores como desempenho e espaço disponível.
Na plataforma Android temos várias formas de persistir essas informações, e cada uma dessas formas se encaixa melhor em cada tipo de dado que você deseja persistir.
9. Saudades do SQL ?
Criar tabelas
Inserir dados
Consultar
Apagar
e tudo mais que você sempre sentiu falta...
sábado, 26 de novembro de 2011
10. Criando e definindo a
base de dados...
//criar classe que extende SQLiteOpenHelper
public class MeuBancoDeDados extends SQLiteOpenHelper {
/**
* implementar métodos:
* onCreate
* onUpgrade
*
* E opcionalmente onOpen
*/
}
sábado, 26 de novembro de 2011
11. Inserindo dados...
//Obtendo instância 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);
sábado, 26 de novembro de 2011
12. Obtendo dados....
//Obtendo instância 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
}
sábado, 26 de novembro de 2011
13. Criar tabela?
Na mão ?
INSERT ?!
sábado, 26 de novembro de 2011
15. Dados embarcados...
Prós:
Possível pré-carregar a aplicação com dados.
Melhoria no desempenho de criação.
Edição gráfica do banco de dados.
Contra:
Aumenta o tamanho da aplicação.
Dados podem ser extraídos do seu APK.
sábado, 26 de novembro de 2011
16. ContentProvider
Única forma de
compartilhar
dados entre diferentes
aplicações.
sábado, 26 de novembro de 2011
18. Providers do sistema
Contatos
Fotos
Calendário (disponível a partir do ICS)
sábado, 26 de novembro de 2011
19. 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
sábado, 26 de novembro de 2011
20. Crie o seu ContentProvider
sábado, 26 de novembro de 2011
21. E como eu
acesso o meu
banco pra
sincronizar?
sábado, 26 de novembro de 2011
22. BackupManager
Backup na cloud de dados
salvos em preferências ou
configurações.
Também de arquivos
pequenos.
sábado, 26 de novembro de 2011
23. Obter uma API Key:
http://code.google.com/android/backup/signup.html
sábado, 26 de novembro de 2011
24. Extender BackupAgentHelper
Deve ter pelo menos um backup helpers:
1. SharedPreferencesBackupHelper
Backup de SharedPreferences!
2. FileBackupHelper
Backup de arquivos do internal storage.
sábado, 26 de novembro de 2011
25. Fazer o backup...
Notificar o BackupManager com a chamada do método
dataChanged()
sábado, 26 de novembro de 2011
26. 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>
sábado, 26 de novembro de 2011
27. WTF...
Já acabou?
sábado, 26 de novembro de 2011
28. Minicurso Gratuito
Persistência de dados em
aplicações Android
15 / dezembro -19h às 22h
Presencial e Online
bit.ly/tI8bbN
sábado, 26 de novembro de 2011