上下文未在可运行线程内解析

时间:2013-01-04 11:23:00

标签: java android

这是主Activity类中的代码,它工作正常..

public void onStart() {
    super.onStart();

mHandler = new Handler();
    context = this;
    ...
}

以下代码给出了问题,不知道原因:

public void onStart() {
    super.onStart();

    new Thread(new Runnable(){
            public void run(){
            mHandler = new Handler();
            context = this;
            ...
        }
    }).start();
}

3 个答案:

答案 0 :(得分:2)

new Thread(new Runnable(){
            public void run(){
            mHandler = new Handler();
            context = this;
            ...
        }
    }).start();

在上面的代码.this中,Thread (Runnable)类对象不是Current Activity。并且您无法将Thread (Runnable) object投射到Android Context

或类似的东西,

context = <MainActivity>.this 

答案 1 :(得分:1)

context = this;替换为context = MainActivity.this,因为它引用Thread对象而不是MainActivity对象。

答案 2 :(得分:0)

this指的是Runnable个实例。您需要封闭活动,因此请改用MyActivityClass.this