内牛满面呐

解决方案 »

  1.   

    hander创建时有个looper参数的你要在哪个线程处理,就把那个线程的looper传进去就可以了
      

  2.   

    我记得是有个默认运行的事的啊  只要我是在主线程中创建的  那他就会在主线程中运行的啊  还有那个looper从来没用过  能给个类似的例子吗
      

  3.   

    问题时新建的线程是没自己的消息列队的
    lass LooperThread extends Thread {
          public Handler mHandler;
          public void run() {
              Looper.prepare();
              mHandler = new Handler() {
                  public void handleMessage(Message msg) {
                      // process incoming messages here
                      System.out.println("Current Task1 Thread Id:"+ Thread.currentThread().getId());
                  }
              };
              Looper.loop();
          }
      }这样线程有自己的looper时默认是在该线程处理的,没Looper.prepare()则是在主线程处理的。 Looper.loop()时是阻塞来监听消息的
      

  4.   

    你理解错我的意思了  我就是要handler在主线程中运行  不让他在新线程中运行,我要修改UI界面,在新线程是改不了的   。我新的线程里什么都没写 就一个发送消息,可是handler还是不在主线程运行
      

  5.   

    那创建handler是指定主线程的looper就在主线程处理的  mHandler = new Handler(Looper.getMainLooper()) {
                  public void handleMessage(Message msg) {
                      // process incoming messages here
                      System.out.println("Current Task1 Thread Id:"+ Thread.currentThread().getId());    
                  }
              };
     
      

  6.   

    内牛满面呐。不好使   真特么邪门  我建了个最简单的程序依然杯具  代码附上  哥们帮看下吧。。挠墙去了package yjc.text;import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Looper;
    import android.os.Message;
    import android.widget.ImageView;public class Text extends Activity { private ImageView image;
    private Handler handler; /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    new Threadss().start();
    handler=new Handler(Looper.getMainLooper()){ @Override
    public void handleMessage(Message msg) {
    // TODO Auto-generated method stub
    super.handleMessage(msg);
    System.out.println(Thread.currentThread().getName());
    }

    };


    }
    class Threadss extends Thread{ @Override
    public void run() {
    // TODO Auto-generated method stub
    super.run();
    System.out.println(Thread.currentThread().getName());
    Message msg=new Message();
    handler.handleMessage(msg);
    }

    }

    }
      

  7.   

    内牛满面handler不是这样用的啊

    class Threadss extends Thread{        @Override
            public void run() {
                // TODO Auto-generated method stub
                super.run();
                System.out.println(Thread.currentThread().getName());
                Message msg=new Message();
        msg.what=1;
                handler.sendMessage(msg);
            }
            
        }