我有一个AsyncTask,它使用轮询队列来查看是否有新对象到达。当它检测到新对象时,我将其收集为字符串信息,然后发布publishProgress(info)。在onProgressUpdate中,它将字符串添加到列表中。我遇到的问题是该程序永远不会进入onProgressUpdate。我在调试器中逐步进行了调试,然后看到它称为publishProgress,但是它从未进入onProgress更新。看起来像这样:

    @Override
    protected void onProgressUpdate(String... values) {
        messageQueue.add(displayName + " : " + values[0]);   //I have a breakpoint here that the program never hits.
        ((BaseAdapter) getListAdapter()).notifyDataSetChanged();
        super.onProgressUpdate(values);
    }

    @Override
    protected Void doInBackground(Void... params) {
        while (true) {
            Packet p = pc.pollResult();
            if(p != null){
                String body = ((Message) p).getBody();   //I have a breakpoint here that the program hits only when a new object is in the queue
                publishProgress(body);
            }
        }

    }

最佳答案

我遇到了一个问题,那就是它没有被调用,但是我只是注意到我把错误的类放在了错误的地方。当然,它应该位于AsyncTask块中,但是我已经在该块之外创建了它

关于android - publishProgress不调用onProgressUpdate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7194070/

10-09 09:03