0

我这里有个问题,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();
    }
}
4

1 回答 1

0

好吧,发现我的问题,现在觉得很愚蠢

e.putInt(Constants.pref_updateweek, cal.get(Calendar.WEEK_OF_YEAR));
e.commit();

在我的应用程序的第一个版本中,我忘记了e.commit(),并在更新中修复了它。

在另一个类中,我有相同的 AsyncTask 但有一些不同的东西,所以我将旧代码复制到那个类(没有e.commit())所以问题不在我的问题中的代码中,而是在另一个类中非常相似的代码中,但是谢谢的建议!

于 2013-04-17T17:59:04.310 回答