2015-06-10 3 views
0

Я пытаюсь прочитать из parseObject. У меня есть класс, и я пытаюсь получить сообщения оттуда, но получаю только последнее сообщение, отправленное с устройства.Не удалось получить из parse

Поэтому, если я отправляю два сообщения, отправляется только последний.

Может ли кто-нибудь мне помочь?

Это мой код:

ParseQuery<ParseObject> query = ParseQuery.getQuery("SmsTable"); 
      query.whereEqualTo("deviceId", android_id); 
      query.findInBackground(new FindCallback<ParseObject>() { 
       @Override 
       public void done(List<ParseObject> objects, com.parse.ParseException e) { 
        if (e == null) { 
         for (ParseObject smsObject : objects) { 
          Date time = (Date) smsObject.get("date"); 
          myMsg = (String) smsObject.get("message"); 
          usrNum = (String) smsObject.get("phoneNumber"); 
          //happend = (boolean) smsObject.get("happend"); 



           result = time; 

         } 



        } else { 

        } 
       } 
      }); 


      if (System.currentTimeMillis() >= result.getTime()&& happend == false) { 
       // count++; 
       sendMsg2(myMsg, usrNum); 
       happend = true; 
} 

ответ

0

Используйте этот

for (ParseObject smsObject : objects) { 
    Date time = (Date) smsObject.get("date"); 
    myMsg = (String) smsObject.get("message"); 
    usrNum = (String) smsObject.get("phoneNumber"); 
    //happend = (boolean) smsObject.get("happend"); 
    result = time; 

    if (System.currentTimeMillis() >= result.getTime()&& happend == false) { 
     // count++; 
     sendMsg2(myMsg, usrNum); 
     happend = true; 
    } 
} 

Я надеюсь, что это решит вашу проблему

+0

спасибо, но это также отправить только последнее сообщение – galmc86

0

кажется, что myMsg и usrNum не является массивом или Список.

Вы звоните только sendMsg2(myMsg, usrNum) один раз, после того, как цикл закончился. Вот почему вы получаете последнее сообщение.

Переместить sendMsg2(myMsg, usrNum) в цикл.

+0

теперь это дробление в момент отправки – galmc86

0

Проблема заключается в том, что вы обнаружили свой sendMsg2() за пределами обоих - области обратного вызова и области цикла. Если вы хотите, чтобы все ваши сообщения отправлялись, вы должны поместить sendMsg2() внутри цикла.

ParseQuery<ParseObject> query = ParseQuery.getQuery("SmsTable"); 
     query.whereEqualTo("deviceId", android_id); 
     query.findInBackground(new FindCallback<ParseObject>() { 
      @Override 
      public void done(List<ParseObject> objects, com.parse.ParseException e) { 
       if (e == null) { 
        for (ParseObject smsObject : objects) { 
         Date time = (Date) smsObject.get("date"); 
         myMsg = (String) smsObject.get("message"); 
         usrNum = (String) smsObject.get("phoneNumber"); 
         //happend = (boolean) smsObject.get("happend"); 

          result = time; 

         if (System.currentTimeMillis() >= result.getTime()&&  happend == false) { 
          // count++; 
          sendMsg2(myMsg, usrNum); 
          happend = true; 
         } 
        } 
       } else { 

       } 
      } 
     }); 
Смежные вопросы