Android 为什么从未调用asynctask上的onPostExecute方法

Android 为什么从未调用asynctask上的onPostExecute方法,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,我试图解雇()progressbar对话框,当加载完成时,使用webview中的方法onPostExecute。 我的问题是,当我在AsynTask中运行onPostExecute方法时,是否从未执行 注:我读过 public class MainActivity extends AppCompatActivity { WebView webView; EditText edInput; Button btnCari; String url; @Over

我试图解雇()progressbar对话框,当加载完成时,使用webview中的方法onPostExecute。 我的问题是,当我在AsynTask中运行onPostExecute方法时,是否从未执行

注:我读过

public class MainActivity extends AppCompatActivity {
    WebView webView;
    EditText edInput;
    Button btnCari;
    String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView) findViewById(R.id.webview);
        edInput = (EditText) findViewById(R.id.editText);
        btnCari = (Button) findViewById(R.id.button);
        btnCari.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                asynCaller myTask = new asynCaller();
                myTask.execute();
            }
        });
    }

    private void loadWeb(String url){
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://"+url);
    }


    public class asynCaller extends AsyncTask<String, Void, String> {

        ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            url = edInput.getText().toString();
            progressDialog.show(MainActivity.this,"Pesan","Memuat . . .",true);
        }


        @Override
        protected String doInBackground(String... params) {
            publishProgress();
            return url;
        }

        @Override
        protected void onPostExecute(String result) {
            progressDialog.dismiss();
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
            loadWeb(url);
        }



    }
}
public类MainActivity扩展了AppCompatActivity{
网络视图;
编辑文本输入;
按钮btnCari;
字符串url;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView=(webView)findviewbyd(R.id.webView);
edInput=(EditText)findViewById(R.id.EditText);
btnCari=(按钮)findViewById(R.id.Button);
btnCari.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
asynCaller myTask=新建asynCaller();
myTask.execute();
}
});
}
私有void loadWeb(字符串url){
webView.getSettings().setJavaScriptEnabled(true);
setWebViewClient(新的WebViewClient());
loadUrl(“https:/”+url);
}
公共类asynCaller扩展AsyncTask{
ProgressDialog=新建ProgressDialog(MainActivity.this);
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
url=edInput.getText().toString();
progressDialog.show(MainActivity.this,“Pesan”,“Memuat…”,true);
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
出版进度();
返回url;
}
@凌驾
受保护的void onPostExecute(字符串结果){
progressDialog.disclose();
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
loadWeb(url);
}
}
}

myTask.doInBackground(字符串…参数)的返回值的值是多少?如果返回null或者您没有正确实现@Override函数,那么我相信onPostExecute(字符串结果)将不会被调用。?????为什么使用异步任务让webview在更新过程中加载url?我认为这毫无意义。绿色应用是对的。这不是为
WebView
实现
ProgressDialog
的方式。无论如何,您的问题是,显示的
ProgressDialog
不是您要忽略的对话框。您正在使用的
show(Context,CharSequence,CharSequence,boolean)
方法是
ProgressDialog
的一个静态方法,它返回显示的实例,但您没有保留对该实例的引用,而是取消在
异步任务顶部初始化的实例,但这一个从未显示。因为方法doInBackground无法处理load web View的UI使用asyntask的loadwebview解决方案是什么?myTask.doInBackground(字符串…参数)返回值的值是多少?如果返回null或者您没有正确实现@Override函数,那么我相信onPostExecute(字符串结果)将不会被调用。?????为什么使用异步任务让webview在更新过程中加载url?我认为这毫无意义。绿色应用是对的。这不是为
WebView
实现
ProgressDialog
的方式。无论如何,您的问题是,显示的
ProgressDialog
不是您要忽略的对话框。您正在使用的
show(Context,CharSequence,CharSequence,boolean)
方法是
ProgressDialog
的一个静态方法,它返回显示的实例,但您没有保留对该实例的引用,而是取消在
异步任务顶部初始化的实例,但那个并没有显示。因为方法doInBackground不能处理加载web视图的UI,所以使用asyntask加载web视图的解决方案是什么?