程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-在循環語句中運行 async tasks 時的 RejectExecutionError 錯誤

java-在循環語句中運行 async tasks 時的 RejectExecutionError 錯誤

編輯:編程綜合問答
在循環語句中運行 async tasks 時的 RejectExecutionError 錯誤

下面的代碼:

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 錯誤。

最佳回答:


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved