AsyncTask onPostExecute没有做它应该做的一切

时间:2013-04-15 15:18:09

标签: android android-asynctask sharedpreferences

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

1 个答案:

答案 0 :(得分:0)

好的,发现我的问题,现在觉得真的很蠢。

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

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

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