2017-03-29 8 views
0

アラームマネージャを使用して、毎日、毎週、そして毎月の解析intオブジェクトをリセットしようとしています。私は3つのオブジェクト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); 

:私はカレンダーから、今日、週や月の日付を取得しています。その後、条件をチェックし、Parseバックエンドを更新します。

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

doesntの仕上がりで、あなたのバックエンドによって処理されなければならない – cYrixmorten

+0

第二に、何かのような音、なぜちょうど日付を格納していませんか?あなたはそれから日、週、月などを引き出すことができます。 – cYrixmorten

答えて

0

新しいParseオブジェクトの作成をdone()の中で以下のように移動します。クエリがバックグラウンドで行われるので、あなたが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()); 

       } 

      } 

     }); 
関連する問題