Java 无法从AsyncTask访问ProgressBar

Java 无法从AsyncTask访问ProgressBar,java,android,Java,Android,我有一个下载文件的简单应用程序。但我无法从AsyncTask类访问MainActivity中衰减的ProgressBar。代码是: 类下载文件任务扩展异步任务{ 受保护的长doInBackground(字符串…genx){ 而(…){ 出版进度(整数)(总计*100/文件); } } 受保护的void onProgressUpdate(整数…进度){ super.onProgressUpdate(进度); mPB.setProgress(progress[0]); } ... } 公共类Main

我有一个下载文件的简单应用程序。但我无法从AsyncTask类访问MainActivity中衰减的ProgressBar。代码是:

类下载文件任务扩展异步任务{
受保护的长doInBackground(字符串…genx){
而(…){
出版进度(整数)(总计*100/文件);
}
}
受保护的void onProgressUpdate(整数…进度){
super.onProgressUpdate(进度);
mPB.setProgress(progress[0]);
}
...
}
公共类MainActivity扩展了AppCompatActivity{
ProgressBar mPB;
创建时受保护的void(Bundle savedInstanceState){
mPB=(ProgressBar)findViewById(R.id.progressBar1);
}
}

您没有在onCreate(…)中调用setContentView(…)

在constructer
DownloadFilesTask中传递您的
ProgressBar

class DownloadFilesTask extends AsyncTask<String, Integer, Long> {

    private ProgressBar mPB;

    DownloadFilesTask(ProgressBar mPB) {
        this.mPB = mPB;
    }

    protected Long doInBackground(String... genx) {
        while(...) {
            publishProgress((int)(total * 100 / filelen));
        }
    }
    protected void onProgressUpdate(Integer... progress) {

        super.onProgressUpdate(progress);
        mPB.setProgress(progress[0]);
    }
...
}
类下载文件任务扩展异步任务{
私人酒吧;
下载文件任务(ProgressBar mPB){
this.mPB=mPB;
}
受保护的长doInBackground(字符串…genx){
而(…){
出版进度(整数)(总计*100/文件);
}
}
受保护的void onProgressUpdate(整数…进度){
super.onProgressUpdate(进度);
mPB.setProgress(progress[0]);
}
...
}

这与问题无关,你能告诉我这与问题无关吗?因为如果没有设置视图,那么如何创建ProgressBar?如果您注意到他onCreate(..)中的代码,他没有调用itI NOTED,但问题不是progressbar没有显示,而是OP试图从其他类访问progressbar。这甚至不是一个与Android相关的问题,而是一个关于访问一个实例到另一个实例的属性的基本java/oop问题。在运行进度条时编译的代码不起作用:-(您在初始化DownloadFilesTask时设置构造函数?“不起作用”这并不意味着什么。请详细说明此解决方案面临的问题?