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

Java 未在可运行线程内解析上下文,java,android,Java,Android,下面是主活动类中的代码,它运行良好 public void onStart() { super.onStart(); mHandler = new Handler(); context = this; ... } 下面的代码给出了问题,不知道为什么: public void onStart() { super.onStart(); new Thread(new Runnable(){ public void run(){

下面是主活动类中的代码,它运行良好

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();
}

引用
Runnable
实例。您需要封闭的活动,因此请使用MyActivityClass。此代替。

指的是
可运行的
实例。您需要封闭的活动,因此请使用
MyActivityClass。此

new Thread(new Runnable(){
            public void run(){
            mHandler = new Handler();
            context = this;
            ...
        }
    }).start();
在上述代码中,
。此
指的是
线程(可运行)
类对象,而不是
当前活动
。并且您不能将
Thread(Runnable)对象强制转换为
Android上下文

或者类似的

context = <MainActivity>.this 
context=。这个
在上述代码中,
。此
指的是
线程(可运行)
类对象,而不是
当前活动
。并且您不能将
Thread(Runnable)对象强制转换为
Android上下文

或者类似的

context = <MainActivity>.this 
context=。这个

替换
上下文=此context=MainActivity的code>。此
引用的是
线程
对象,而不是
MainActivity
对象。

替换
context=this使用
context=MainActivity。这是因为它引用的是
Thread
对象,而不是
MainActivity
对象。

设置ActivityClassName。如果需要线程中的上下文,可以使用AsyncTask。类似于Androidset ActivityClassName中的线程。如果希望在线程中使用上下文,则可以使用AsyncTask。类似于android中的线程,还有一件事我使用了“android\u id=Secure.getString(this.getContentResolver(),Secure.android\u id)”,这里还有“this.getContentResolver()”未解析。。plz help..只需在此处省略
this
android=Secure.getString(getContentResolver(),Secure.android)谢谢Henry,还有一件事我使用了“android\u id=Secure.getString(this.getContentResolver(),Secure.android\u id)”,这里还有“this.getContentResolver()”没有解析。。plz help..只需在此处省略
this
android=Secure.getString(getContentResolver(),Secure.android)getContentResolver()
是活动或上下文类的方法。使用
mContext.getContentResolver()
。此.getContentResolver()
。因为
getContentResolver()
是活动或上下文类的方法。使用
mContext.getContentResolver()
。此.getContentResolver()