我有一个问题,onPostExecute()方法没有做它应该做的一切。
正如您在onPostExecute中看到的,布尔值决定了会发生什么。 但是,如果你通过日志得到b你看不到任何东西,那么执行的代码就是b = true
对话框显示en表示它已经成功但是偏好不会得到更新,我在这里做错了什么?
@Override
protected void onPostExecute(Boolean b) {
publishProgress(100);
dialog.dismiss();
if (b) {
e.putInt(Constants.pref_updateweek, cal.get(Calendar.WEEK_OF_YEAR));
e.commit();
AlertDialog.Builder alert = new AlertDialog.Builder(mContext);
alert.setTitle("Succes");
alert.setMessage("Alles is bijgewerkt");
alert.setPositiveButton("Ok", null);
alert.show();
act.commUI();
} else {
AlertDialog.Builder alert = new AlertDialog.Builder(mContext);
alert.setTitle("Error");
alert.setMessage("Er is een fout opgetreden.");
alert.setPositiveButton("Ok", null);
alert.show();
}
}
答案 0 :(得分:0)
好的,发现我的问题,现在觉得真的很蠢。
e.putInt(Constants.pref_updateweek, cal.get(Calendar.WEEK_OF_YEAR));
e.commit();
在我的应用的第一个版本中,我忘记了e.commit()
,并在更新中修复了它。
在另一个类中我有相同的AsyncTask但有一些不同的东西,所以我将旧代码复制到该类(没有e.commit()
)所以问题不在我的问题的代码中但在非常similair代码在另一个类,但感谢您的建议!