我正在尝试使用警报管理器每天、每周和每月重置解析 int 对象。我有三个对象dayObject,weekObject和monthObject,它们运行和更新文本视图。但是应用程序崩溃并显示错误值可能不为空。请帮忙!!
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();
我每周和一个月都在重复相同的内容。我正在检索所有对象,因为当我只保存一个特定对象时,其他对象显示未定义。因此,我检索旧值并再次保存。
将新 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());
}
}
});