为了账号安全,请及时绑定邮箱和手机立即绑定

在循环语句中运行 async tasks 时的 RejectExecutionError 错误

在循环语句中运行 async tasks 时的 RejectExecutionError 错误

Qyouu 2019-03-22 14:15:49
下面的代码:private void getOnlineConnections() {            for (int i = 0; i < contacts.size(); i++)     {         final Persons person =  contacts.get(i);         String queryString = null;         try {             queryString = String.format(Constants.GET_ONLINE_URL,                                  URLEncoder.encode(person.myId, "UTF-8"));         } catch (UnsupportedEncodingException e) {             e.printStackTrace();         }         ResponseCallback callback = new ResponseCallback()          {             @Override             public void onSuccess(String response)              {                 response = response.trim();             }             @Override             public void onFailure(String exception)              {}         };         new MyAsyncTask(queryString, callback);      }        }现在联系人的数量多于128 或者超过TheadPoolExecutor的限度。如何增加这个限制的数量,然后不出现 RejectExecutionError 错误。
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

如果你使用 API 11 或更高的版本,创建你的自定义的 thread pool,并且使用 executeOnExecutor()。如果是支持旧的版本,不能使用 AsyncTask。创建自定义的 thread pool,在 main application thread 中使用其它的方法(比如runOnUiThread())。


查看完整回答
反对 回复 2019-04-29
?
倚天杖

TA贡献1828条经验 获得超3个赞

换个思路,启动一个MyAsyncTask,在ondoBackground中去循环取联系人


查看完整回答
反对 回复 2019-04-29
  • 2 回答
  • 0 关注
  • 546 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信