从解析中检索没有成功

时间:2015-06-10 15:49:40

标签: android

我正在尝试从parseObject中读取。我在那边有一个班级,我正在尝试从那里获取消息,但我只收到从设备发送的最后一条消息。

因此,如果我发送两条消息,则仅发送最后一条消息。

任何人都可以帮助我吗?

这是我的代码:

  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;
}

3 个答案:

答案 0 :(得分: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;
    }
}

我希望这能解决你的问题

答案 1 :(得分:0)

似乎myMsgusrNum不是数组或列表。

在循环结束后,您只需拨打sendMsg2(myMsg, usrNum)一次。这就是为什么你只收到最后一条消息。

sendMsg2(myMsg, usrNum)移至循环中。

答案 2 :(得分: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 {

                }
            }
        });