2014-07-02 3 views
7

Non riesco a far funzionare il blocco e non riesco a trovare una soluzione. Ho Pin i dati in questo modo:I dati rimangono nel datastore locale dopo lo sblocco

myGroup = queryGroup.getFirst(); 
if (myGroup != null) { 
    ParseObject.unpinAllInBackground("Groups", new DeleteCallback() { 
     @Override 
     public void done(ParseException arg0) { 
      myGroup.pinInBackground("Groups", new SaveCallback() { 
       @Override 
       public void done(ParseException arg0) { 
        if (arg0 != null) { 
         Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_SHORT).show(); 
         arg0.printStackTrace(); 
        } 
       } 
      }); 
     } 
    }); 
} 

e cercare di sbloccare in questo modo:

ParseObject.unpinAllInBackground("Groups", new DeleteCallback() { 
    @Override 
    public void done(ParseException arg0) { 
     if (arg0 == null) { 
      dataDeleted(); 
     } else { 
      arg0.printStackTrace(); 
     } 
    } 
}); 

Ma non genera un'eccezione e i dati sono ancora salvato in locale quando inizio una query .

+0

Come si è sicuri che i dati siano locali nella query? È possibile che tu abbia bloccato questi oggetti in un altro nome di tag? – Fosco

+0

Creo la mia query con: myGroupQuery.fromLocalDatastore(); ... Quindi dovrebbe solo interrogare localmente. – Bruno

+0

Ok. Fai clic sul pulsante Segnala un bug/Bugto qui: https://parse.com/help – Fosco

risposta

1

provare a eliminare i dati locali e riprovare. Ho avuto alcuni problemi bizzarri legati al blocco, ho scoperto di avere degli oggetti bloccati senza dati, che hanno incasinato il blocco.

utilizzando il seguente codice, pinallinbackground opere, si è in grado di provare che, invece di iterazione attraverso ogni oggetto ?:

query.findInBackground(new FindCallback<ParseObject>() { 

     @Override 
     public void done(final List<ParseObject> moves, final com.parse.ParseException e) { 
     if (e == null) { 
      if (debug) { 
      Log.i("bjjMoves returned:", String.valueOf(moves.size())); 
      } 
      ParseObject.unpinAllInBackground("bjjMoves", new DeleteCallback() { 
      public void done(ParseException e) { 
       // Cache the new results. 
       ParseObject.pinAllInBackground("BJJMove", moves); 
      } 
      }); 

si noterà che sto utilizzando PinAllInBackground, non pininbackground.