Java AsyncTask-onPostExecute UI混淆

Java AsyncTask-onPostExecute UI混淆,java,android,asynchronous,android-asynctask,Java,Android,Asynchronous,Android Asynctask,我试图通过搜索自己找出哪里出了问题,但我想我错过了其他一些东西 我有一个doInBackground类,它为我检查一些东西,并向onPostExecute返回TRUE或FALSE。通过调试,我发现代码正在运行,param通过函数发送,并且逐行运行,但是UI并没有在它们必须更新的地方进行更新 以下是我的部分代码: class check extends AsyncTask<Void,Void,Boolean> { @Override protected Boolean

我试图通过搜索自己找出哪里出了问题,但我想我错过了其他一些东西

我有一个doInBackground类,它为我检查一些东西,并向onPostExecute返回TRUE或FALSE。通过调试,我发现代码正在运行,param通过函数发送,并且逐行运行,但是UI并没有在它们必须更新的地方进行更新

以下是我的部分代码:

class check extends AsyncTask<Void,Void,Boolean> {

    @Override
    protected Boolean doInBackground(Void... params) {
        //some code here

        if(tmp.equals(SSID)){
            return true;
        } else {           
            //little bit of code
            return false;
        }
    }

    @Override
    protected void onPostExecute(Boolean is) {
       super.onPostExecute(is);
        if(is){
            Button State = (Button) findViewById(R.id.State);
            State.setBackgroundResource(R.drawable.shape_ringcnt);
        } else {
            Button State = (Button) findViewById(R.id.State);
            State.setBackgroundResource(R.drawable.shape_ringnrdy);
        }
    }
}
类检查扩展了异步任务{
@凌驾
受保护的布尔doInBackground(Void…params){
//这里有一些代码
如果(tmp等于(SSID)){
返回true;
}否则{
//一点点代码
返回false;
}
}
@凌驾
受保护的void onPostExecute(布尔值为){
super.onPostExecute(is);
如果(是){
按钮状态=(按钮)findViewById(R.id.State);
州.立根资源(R.可绘制形状);
}否则{
按钮状态=(按钮)findViewById(R.id.State);
状态.立根资源(R.可绘制.形状\u环nrdy);
}
}
}

我认为我隐藏的代码对UI毫无作用,但如果其他一切正常,我可以显示隐藏的部分。

我刚刚用ImageView更改了按钮,就这样!我不知道为什么它不能与按钮一起工作,但是对于ImageView和更改resor的URI,我只是用ImageView更改了按钮,就这样!我不知道为什么它不能与按钮一起使用,但是使用ImageView和更改resor的URI

您确定它正在PostExecuteIf上运行代码吗?因此我认为您需要刷新viewwrite状态。在setbackground@has19谢谢我试过了,但UI仍然没有更新。我还检查了代码,我非常确定OnPostExecuteJ中的代码正在正确运行。必须将new layoutparam设置为按钮,就像State.setBackgroundResource之后的xml一样。我认为它应该可以工作。这样视图应该刷新。您确定它在onPostExecuteif中运行代码吗?因此我认为您需要刷新viewwriteState.invalidate()之后setbackground@has19谢谢我试过了,但UI仍然没有更新。我还检查了代码,我非常确定代码在OnPostExecuteJ中正确运行,必须将new layoutparam设置为按钮,因为它们来自State.setBackgroundResource之后的xml,我认为应该可以工作。这样应该刷新视图