android-developers
[Arriba] [Todas las Listas]

[android-developers] ID_de FUENTE_del GRUPO -> ID_de FILA_del GRUPO cach

To: Android Developers <android-developers@xxxxxxxxxxxxxxxx>
Subject: [android-developers] ID_de FUENTE_del GRUPO -> ID_de FILA_del GRUPO caching asunto
From: Jay <johnabloodworth3@xxxxxxxxx>
Date: Sat, 29 Oct 2011 10:25:53 -0700 (PDT)
Delivery-date: Sat, 29 Oct 2011 13:26:13 -0400
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=x-beenthere:mime-version:date:user-agent:x-http-useragent :message-id:subject:from:to:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-google-group-id:list-post:list-help:list-archive:sender :list-subscribe:list-unsubscribe:content-type; bh=nmYGbH2uXzgWoRZnPhjrzie7tTxU/ncYSKDC8myxLRA=; b=YDGAyrL+ykfWGf/yzmemLv5AiYARKMNCp4WzLQtEGgPyY30IPGCMiQYSn6LhVxTw+R 4RmFpE2cL3RZyWtyBzy6eY3xSxqxt8lMLEjj9WlnXvkUZob2gaIH+iPn7uuMjkxkdAZj Z2Ho+DWKVeTboE/fVxVsCz0qqGyiS/BrwWpWg=
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://groups.google.com/group/android-developers?hl=en_US>
List-help: <http://groups.google.com/support/?hl=en_US>, <mailto:android-developers+help@googlegroups.com>
List-id: <android-developers.googlegroups.com>
List-post: <http://groups.google.com/group/android-developers/post?hl=en_US>, <mailto:android-developers@googlegroups.com>
List-subscribe: <http://groups.google.com/group/android-developers/subscribe?hl=en_US>, <mailto:android-developers+subscribe@googlegroups.com>
List-unsubscribe: <http://groups.google.com/group/android-developers/subscribe?hl=en_US>, <mailto:android-developers+unsubscribe@googlegroups.com>
Mailing-list: list android-developers@xxxxxxxxxxxxxxxx; contact android-developers+owners@xxxxxxxxxxxxxxxx
Reply-to: android-developers@xxxxxxxxxxxxxxxx
Sender: android-developers@xxxxxxxxxxxxxxxx
User-agent: G2/1.0
No soy seguro si esto es un *bug en *Android, un *bug en el *emulator, o un
*bug en mi código. Tengo un *syncadpter que crea unos cuantos grupos y les
puebla con contactos crudos. Los trabajos de código cuando esperado en
un recientemente chutado *emulator. Si elimino el *syncadapter cuenta los
grupos y los contactos son eliminados cuando esperado. Aun así, si yo entonces añadir
la cuenta atrás, los grupos y los contactos son *recreated justo bien, pero
no es enlazado junto correctamente. Basado en mirar en los contactos *db
con el *adb pela, parece que el *GroupMembership filas de dato (cuál
era añadió con el parámetro_de ID_de FUENTE de GRUPO) está utilizando la fila_de grupo_*ids
de cuándo los grupos fueron creados el primer tiempo. Así que parece hay un *stale ID_de FUENTE_del GRUPO -> ID_de FILA_del GRUPO *cache
siendo utilizado *somewhere. Hace esto parece una plataforma *bug, o es allí
un *api para aclarar tal *cache tendría que ser utilizar?

*Thanks,
Jay

Esto es el bucle interior de mi contacto crea código. Los grupos necesarios
ya han sido creados.

// El Contacto no existe; crearle
final *int *backRef = lote.Medida();
lote.Añade(*ContentProviderOperation.*newInsert(*RawContacts.CONTENIDO_*URI)
			.*withYieldAllowed(Cierto)
			.*withValue(*RawContacts.TIPO_de CUENTA, cuenta.Tipo)
			.*withValue(*RawContacts.NOMBRE_de CUENTA, cuenta.Nombre)
			.*withValue(*RawContacts.ID_de FUENTE, *serverId).Complexión());
// Sujetar lote
de nombres.Añade(*ContentProviderOperation.*newInsert(Dato.CONTENIDO_*URI)
			.*withValueBackReference(Dato.ID_de CONTACTO_CRUDO, *backRef)
			.*withValue(Dato.*MIMETYPE, *StructuredName.TIPO_de ELEMENTO_del CONTENIDO)
			.*withValue(*StructuredName.NOMBREDADO, contacto.*getGiven())
			.*withValue(*StructuredName.NOMBREFAMILIAR,
contacto.*getFamily()).Complexión());
// Sujetar grupos
puesto que (final largo *groupServerId : contacto.*getGroups())
	#Nom.Añade(*ContentProviderOperation.*newInsert(Dato.CONTENIDO_*URI)
				.*withValueBackReference(Dato.ID_de CONTACTO_CRUDO, *backRef)
				.*withValue(Dato.*MIMETYPE, *GroupMembership.TIPO_de ELEMENTO_del CONTENIDO)
				.*withValue(*GroupMembership.ID_de FUENTE_del GRUPO,
*groupServerId).Complexión());
	}

-- 
recibiste este mensaje porque eres *subscribed al *Google
Grupos "*Android *Developers" grupo.
A correo a este grupo, envía *email a *android-developers@xxxxxxxxxxxxxxxx
A *unsubscribe de este grupo, envía *email a *android-*developers+unsubscribe@xxxxxxxxxxxxxxxx

Puesto que más opciones, visita este grupo en
*http://grupos.*google.*com/Grupo/*android-*developers?*hl=*en

I'm not sure if this is a bug in Android, a bug in the emulator, or a
bug in my code. I have a syncadpter that creates a few groups and
populates them with raw contacts. The code works as expected on a
freshly booted emulator. If I delete the syncadapter's account the
groups and contacts are deleted as expected. However, if I then add
the account back, the groups and contacts are recreated just fine, but
are not linked together properly. Based on looking at the contacts db
with the adb shell, it seems that the GroupMembership data rows (which
were added with the GROUP_SOURCE_ID parameter) are using the
group_row_ids from when the groups were created the first time. So it
looks like there is a stale GROUP_SOURCE_ID -> GROUP_ROW_ID cache
being used somewhere. Does this look like a platform bug, or is there
an api for clearing such a cache I should be using?

Thanks,
Jay

This is the inner loop of my contact create code. The necessary groups
have already been created.

// Contact does not exist; create him
final int backRef = batch.size();
batch.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
			.withYieldAllowed(true)
			.withValue(RawContacts.ACCOUNT_TYPE, account.type)
			.withValue(RawContacts.ACCOUNT_NAME, account.name)
			.withValue(RawContacts.SOURCE_ID, serverId).build());
// Attach names
batch.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
			.withValueBackReference(Data.RAW_CONTACT_ID, backRef)
			.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
			.withValue(StructuredName.GIVEN_NAME, contact.getGiven())
			.withValue(StructuredName.FAMILY_NAME,
contact.getFamily()).build());
// Attach groups
for (final long groupServerId : contact.getGroups()) {
	batch.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
				.withValueBackReference(Data.RAW_CONTACT_ID, backRef)
				.withValue(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE)
				.withValue(GroupMembership.GROUP_SOURCE_ID,
groupServerId).build());
	}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@xxxxxxxxxxxxxxxx
To unsubscribe from this group, send email to
android-developers+unsubscribe@xxxxxxxxxxxxxxxx
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

<Anterior por Tema] Tema Actual [Siguiente por Tema>
  • [android-developers] ID_de FUENTE_del GRUPO -> ID_de FILA_del GRUPO caching asunto, Jay <=