Cómo combinar varias consultas de análisis a la vez
Tengo dos preguntas parse que quiero ser evaluado en un solo clic de un botón. Tengo dos clases en Parse. Quiero comprobar ambas cosas a la vez. Mis preguntas son:
ParseQuery<ParseObject> query =ParseQuery.getQuery("Login"); query.whereEqualTo("x",X); query.whereEqualTo("y",Y);
Al mismo tiempo de inicio de sesión estoy revisando una relación entre dos entidades. Mi segunda pregunta es:
- Android parse.com que guarda error de la instalación. Objeto no encontrado para la actualización
- Tienen menú sólo aparecen en la barra de acción si ParseUser está viendo su propia publicación
- Cómo guardar y retirar fotos y videos en Parse (Android)
- Android: Añadir usuarios a Parse a través de Facebook, usando su 'ParseFacebookUtils`
- Error de autenticación de Parse.com: No se puede responder a ninguno de estos desafíos: {oauth = www-authenticate: OAuth realm = "https://api.twitter.com"}
ParseQuery<ParseObject> query1 =ParseQuery.getQuery("UserData"); query.whereEqualTo("entity1",entity1); query.whereEqualTo("entity2",entity2);
Ahora, si ambas consultas tienen éxito, el usuario puede procesar la aplicación. ¿Cómo puedo combinar las dos consultas para que ambas consultas tengan éxito
- No se puede crear servicio com.parse.PushService: java.lang.NullPointerException
- ParseFacebookUtils logInWithReadPermissionsInBackground fecha no válida
- Analizar notificación de inserción abierta en diferentes actividades Android
- ¿Cómo se encuentran los ParseRoles actualmente asociados con el ParseUser actual?
- Parse REST API no devuelve clave del cliente
- Eliminar una fila de la tabla Parse
- Importe la biblioteca parse.com al estudio de Android 0.8.2
- Parse SDK Android - API de gráficos de Facebook v2.0
Utilice una consulta compuesta. El siguiente ejemplo se toma de Parse Docs en http://www.parse.com
ParseQuery<ParseObject> lotsOfWins = ParseQuery.getQuery("Player"); lotsOfWins.whereGreaterThan(150); ParseQuery<ParseObject> fewWins = ParseQuery.getQuery("Player"); fewWins.whereLessThan(5); List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>(); queries.add(lotsOfWins); queries.add(fewWins); ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries); mainQuery.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> results, ParseException e) { // results has the list of players that win a lot or haven't won much. } });
Puede crear CountDownLatch e inicializarlo con el número de sus consultas. A continuación, cada consulta contará la cuenta regresiva al completar su tarea.
final CountDownLatch mCountDownLatch = new CountDownLatch(2); ParseQuery<ParseObject> query =ParseQuery.getQuery("Login"); query.whereEqualTo("x",X); query.whereEqualTo("y",Y); ParseQuery<ParseObject> query1 =ParseQuery.getQuery("UserData"); query.whereEqualTo("entity1",entity1); query.whereEqualTo("entity2",entity2); query.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> parseObjects, ParseException e) { if (null == e) { mCountDownLatch.countDown(); } } }); query1.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> parseObjects, ParseException e) { if (null == e) { mCountDownLatch.countDown(); } } }); try { mCountDownLatch.await(); } catch (InterruptedException e) { e.printStackTrace(); } finally { proceedToApp(); }
Sólo tienes que crear hilos separados de los que llamarás await ().
Si estuviera usando JavaScript, diría "Promesas son su amigo".
Puesto que usted está utilizando Java / Android, le sugiero que mire "Bolts".
Aquí hay una entrada de blog de Parse que lo introduce: http://blog.parse.com/2014/10/15/introducing-bolts-for-parse-sdks/
En su caso su onSuccess
despediría la segunda consulta o reemplazaría la matriz saveTasks
con una matriz findTasks
y findInBackground()
operaciones findInBackground()
.
- Android Developer Tools 16 y problemas con -weepclasseswithmembers in proguard
- La visualización de listas personalizadas está muy retrasada mientras se desplaza el android