2017-03-29 6 views
0

Alarm Manager를 사용하여 매일, 일주일 단위로 parse int 개체를 다시 설정하려고합니다. dayObject, weekObject, monthObject의 세 객체가 있는데,이 객체는 텍스트 뷰를 실행하고 업데이트합니다. 하지만 앱이 오류 값 Null이 아닐 수도 있습니다. 도와주세요!!! Android : 매일, 주 및 월 구문 분석 백엔드 개체

onCreate()

:

Intent iToday = new Intent(this, TodayReset.class); 
iToday.putExtra("createdAt", createdAt.getTime()); 
piToday = PendingIntent.getBroadcast(this, 0, iToday, 0); 
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, today.getTime(), AlarmManager.INTERVAL_DAY, piToday); 

수신에() : 나는 달력에서 오늘, 주 및 월 날짜를 얻고있다. 그런 다음 조건을 확인하고 구문 분석 백엔드를 업데이트합니다.

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Pattern"); 

query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername()); 

query.orderByDescending("createdAt"); 

query.getFirstInBackground(new GetCallback<ParseObject>() { 
    @Override 
    public void done(ParseObject object, ParseException e) { 
    if(e == null && object != null) { 
     totalValue = object.getInt("totalValue"); 
     weekValue = object.getInt("weekValue"); 
     monthValue = object.getInt("monthValue");    
    } else { 
     Log.i("RetErr", e.getMessage()); 
    } 
    } 
}); 

ParseObject pattern = new ParseObject("Pattern"); 

pattern.put("username", ParseUser.getCurrentUser().getUsername()); 

pattern.put("totalValue", totalValue); 
pattern.put("todayValue", 0); 
pattern.put("weekValue", weekValue); 
pattern.put("monthValue", monthValue); 

pattern.save(); 

주와 달에도 같은 내용을 반복합니다. 특정 개체 만 저장하면 다른 개체가 정의되어 있지 않기 때문에 모든 개체를 검색하고 있습니다. 그러므로 이전 값을 검색하고 다시 저장합니다.

+0

이 두 번째로 백엔드 – cYrixmorten

+0

에 의해 처리해야 뭔가 것 같은데, 왜 그냥 날짜를 저장하지? 일, 주, 월 등을 그 것으로부터 끌어낼 수 있습니다. – cYrixmorten

답변

0

아래와 같이 done() 내에 새 Parse Object의 생성을 이동하십시오. 당신이 시도에서 totalValue 등을 사용하기 전에 쿼리가 백그라운드에서 수행되기 때문에이 나던 마무리입니다

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Pattern"); 

     query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername()); 

     query.orderByDescending("createdAt"); 

     query.getFirstInBackground(new GetCallback<ParseObject>() { 
      @Override 
      public void done(ParseObject object, ParseException e) { 

       if(e == null && object != null) { 

        totalValue = object.getInt("totalValue"); 
        weekValue = object.getInt("weekValue"); 
        monthValue = object.getInt("monthValue"); 
        ParseObject pattern = new ParseObject("Pattern"); 

     pattern.put("username", ParseUser.getCurrentUser().getUsername()); 

     pattern.put("totalValue", totalValue); 
     pattern.put("todayValue", 0); 
     pattern.put("weekValue", weekValue); 
     pattern.put("monthValue", monthValue); 

      pattern.save(); 


       } else { 

        Log.i("RetErr", e.getMessage()); 

       } 

      } 

     });