произошла ошибка Android при выполнении doInBackground ()

1

Я получаю сообщение об ошибке "ошибка при выполнении doInBackground()"

Вот мой класс ASyncTask:

private class ASyncPollServer extends AsyncTask<String, Void, String>{

    @Override
    protected String doInBackground(String... params) {
        String pollResult = "";
        if(((ChatApplication) _instance.getApplication()).isPolling() == false){
        ((ChatApplication) _instance.getApplication()).setPolling(true);
        pollResult = ((ChatApplication) _instance.getApplication()).GetConnectionManager().PollServer();
    }
        return pollResult;
        }

    @Override
    protected void onPostExecute(String result) {
        if(result != ""){
            HandlePollResult(result);
            ((ChatApplication) _instance.getApplication()).setPolling(false);
        }

    }

}

И мой TimerTask, чтобы назвать это:

private Handler handler = new Handler();
public class ServerPollTimer extends TimerTask {
    private Runnable runnable = new Runnable() {
        public void run() {
            ExecutePollServer();
        }
    };

    public void run() {
        handler.post(runnable);
        }
    }

И мой метод ExecutePollServer:

private void ExecutePollServer(){
    ASyncPollServer task = new ASyncPollServer();
    task.execute();
}

И где я вызываю таймер в OnCreate():

new Timer().schedule(new ServerPollTimer() , 0, 5000);

Вот мой стек:

05-30 09:46:16.020: E/AndroidRuntime(340): FATAL EXCEPTION: AsyncTask #1
05-30 09:46:16.020: E/AndroidRuntime(340): java.lang.RuntimeException: An error occured while executing doInBackground()
05-30 09:46:16.020: E/AndroidRuntime(340):  at android.os.AsyncTask$3.done(AsyncTask.java:200)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
05-30 09:46:16.020: E/AndroidRuntime(340):  at java.lang.Thread.run(Thread.java:1019)
05-30 09:46:16.020: E/AndroidRuntime(340): Caused by: java.lang.IllegalStateException: No wrapped connection.
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.conn.AbstractClientConnAdapter.assertValid(AbstractClientConnAdapter.java:163)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:269)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:237)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:119)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:421)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-30 09:46:16.020: E/AndroidRuntime(340):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-30 09:46:16.020: E/AndroidRuntime(340):  at chatclient.utility.HttpPostNetworkUtility.PerformPost(HttpPostNetworkUtility.java:43)
05-30 09:46:16.020: E/AndroidRuntime(340):  at chatclient.utility.ConnectionManager.ExecuteCommand(ConnectionManager.java:213)
05-30 09:46:16.020: E/AndroidRuntime(340):  at chatclient.utility.ConnectionManager.PollServer(ConnectionManager.java:192)
05-30 09:46:16.020: E/AndroidRuntime(340):  at chatclient.namespace.MainWindowActivity$ASyncPollServer.doInBackground(MainWindowActivity.java:402)
05-30 09:46:16.020: E/AndroidRuntime(340):  at chatclient.namespace.MainWindowActivity$ASyncPollServer.doInBackground(MainWindowActivity.java:1)

Любая помощь была бы высоко оценена!

Спасибо!

Теги:

1 ответ

0

Этот ответ предполагает, что вы должны использовать ThreadSafeClientConnManager в своем pollResult = ((ChatApplication) _instance.getApplication()).GetConnectionManager().PollServer(); ,

Я также заменил бы ((ChatApplication) _instance.getApplication()) переменную-член, инициализированную onPreExecute или аналогичную.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню