Android处理程序未更新textview

Android处理程序未更新textview,android,textview,handler,Android,Textview,Handler,我想我会和你们分享一些奇怪的代码,看看我是否犯了什么错误。 我已经向后台线程传递了一个处理程序来更新mainactivity的UI(我知道这不是最好的方法,但这应该是一个快速而肮脏的测试应用程序) 基本上,代码会在textview上附加一条消息,如下所示: uiHandler.post(new Runnable() { @Override public void run() {

我想我会和你们分享一些奇怪的代码,看看我是否犯了什么错误。 我已经向后台线程传递了一个处理程序来更新mainactivity的UI(我知道这不是最好的方法,但这应该是一个快速而肮脏的测试应用程序) 基本上,代码会在textview上附加一条消息,如下所示:

                    uiHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        Log.i("Text2Server", "Updating log with: " + logput);
                        logTextView.append(logput);
                    }
                });
每次收到UDP消息时都会发生这种情况,每次都会完美地输出日志,但textview只会在第一条消息上更新,有时甚至根本不会更新

我想这与我的文本视图有关,但我想我会看看是否有人见过类似的东西

谢谢

另外,我已经尝试了一些基本的方法,比如使用setText()而不是append()等等。

它是否在LogCat中输出
“Text2Server”,“使用“+logput
更新日志?”

.post(Runnable r)
此Runnable被放置在队列中,并将在稍后附加的线程执行时运行

也许,处理程序无法访问ui线程,这种假设也可能是错误的

试试另一种方法

实例化处理程序:

 Handler handler = new Handler(){

        @Override
        public void handleMessage(Message msg) {        
        String logPutFromThread=msg.getData().getString("somekey");
            Log.i("Text2Server", "Updating log with: " + logPutFromThread);
            logTextView.append(logPutFromThread);
        }

    };
从线程的
Runnable

Runnable updateActivityUi = new Runnable(){

        @Override
        public void run() {

        //do something before you send the message
                Message msg = new Message();
                msg.peekData().putString("somekey", logput)
                handler.sendMessage(msg)


        }};
它是否在LogCat中输出
“Text2Server”,“更新日志时使用:”+logput

.post(Runnable r)
此Runnable被放置在队列中,并将在稍后附加的线程执行时运行

也许,处理程序无法访问ui线程,这种假设也可能是错误的

试试另一种方法

实例化处理程序:

 Handler handler = new Handler(){

        @Override
        public void handleMessage(Message msg) {        
        String logPutFromThread=msg.getData().getString("somekey");
            Log.i("Text2Server", "Updating log with: " + logPutFromThread);
            logTextView.append(logPutFromThread);
        }

    };
从线程的
Runnable

Runnable updateActivityUi = new Runnable(){

        @Override
        public void run() {

        //do something before you send the message
                Message msg = new Message();
                msg.peekData().putString("somekey", logput)
                handler.sendMessage(msg)


        }};

是的,日志会显示,文本视图不会更新。这很奇怪。不,不过现在试试看。将发布结果,抱歉延迟。好的,仍然不起作用。处理程序不会被调用,也不会记录任何内容。我想我记得以前有过这个问题,它和活套有关,但我不确定。有什么想法吗?谢谢你迄今为止的帮助!是的,日志会显示,文本视图不会更新。这很奇怪。不,不过现在试试看。将发布结果,抱歉延迟。好的,仍然不起作用。处理程序不会被调用,也不会记录任何内容。我想我记得以前有过这个问题,它和活套有关,但我不确定。有什么想法吗?谢谢你迄今为止的帮助!也有这个问题。它在第一次加载时工作,但在重新加载活动时不再工作。也存在此问题。它在第一次加载时工作,但在重新加载活动时不再工作。