【问题标题】:Error while calling external AsyncTask from fragment从片段调用外部 AsyncTask 时出错
【发布时间】:2013-09-16 19:53:03
【问题描述】:

有人可以帮我解决这个问题吗? 当片段中的 SharedPreference 发生变化时,我正在调用 AsyncTask。

公共类 UbiSavePreferenceTask 扩展 AsyncTask {

    public final AsyncTask<JSONObject, Integer, Boolean> parallelExecute(JSONObject pref) {
    return parallelExecute(pref);
}

在我的片段中

emailNotificationPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference,Object newValue) {
            JSONObject json = new JSONObject();
            try {
                json.put("Email", newValue);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            UbiSavePreferenceTask savePref = new UbiSavePreferenceTask(mContext);
            savePref.parallelExecute(json);

            return true;

        }

});

但是异步任务中的 parallelExecute 方法进入了一个无限循环,所以我得到了 stackOverflowError。 有什么办法可以摆脱这个错误。 请告诉我。

【问题讨论】:

    标签: android-fragments android-asynctask


    【解决方案1】:

    方法parallelExecute调用自己,死循环是正常的!

    public final AsyncTask<JSONObject, Integer, Boolean> parallelExecute(JSONObject pref) {
        return parallelExecute(pref); // <--- here the method calls itself!
    }
    

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多