为了账号安全,请及时绑定邮箱和手机立即绑定

为什么myThread.handler.sendEmptyMessage(1);这行会报空指针异常啊

package com.example.android_handler_01;


import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Looper;

import android.os.Message;

import android.widget.TextView;


public class MainActivity extends Activity {


private Handler handler = new Handler(){

public void handleMessage(android.os.Message msg) {

};

};

class MyThread extends Thread{

public Handler handler;

@Override

public void run() {

Looper.prepare();

handler = new Handler(){

@Override

public void handleMessage(Message msg) {

System.out.println("currentThread"+Thread.currentThread());

}

};

Looper.loop();

}

}

private MyThread myThread; 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

   

        super.onCreate(savedInstanceState);

        

        TextView textView = new TextView(this);

        textView.setText("hello everyone");

        setContentView(textView);

        

        myThread = new MyThread();

        myThread.start();

        

        myThread.handler.sendEmptyMessage(1);


    }

}


正在回答

3 回答

 myThread.handler为空,所以在myThread.start();后面添加Thread.sleep(500);休眠半秒钟 让myThread.handler在run中创建,保证myThread.handler不为空

0 回复 有任何疑惑可以回复我~
#1

Refactor易先生 提问者

非常感谢!
2016-01-10 回复 有任何疑惑可以回复我~

不会的啊,其它童鞋下载之后没出现这个问题,你在试试^_^...calss.this.( )

0 回复 有任何疑惑可以回复我~

知道了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android面试常客Handler详解
  • 参与学习       54877    人
  • 解答问题       183    个

学Android开发,必学Handler,也是Android面试常客

进入课程

为什么myThread.handler.sendEmptyMessage(1);这行会报空指针异常啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信