Progress bar Not working

0

People I have two threads, one that accesses the webview with the url and another responsible for progressbar, but the progress bar is not running. What can it be and how to fix it?

import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.net.ConnectivityManager;
import android.content.Context;
import android.net.NetworkInfo;
import android.net.Network;
import android.widget.ProgressBar;

public class ConectActivity extends Activity {


    private WebView webView;
    private ProgressBar progress;

    public  boolean verificaConexao() {
        boolean conectado;
        ConnectivityManager conectivtyManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if (conectivtyManager.getActiveNetworkInfo() != null
                && conectivtyManager.getActiveNetworkInfo().isAvailable()
                && conectivtyManager.getActiveNetworkInfo().isConnected()) {
            conectado = true;
        } else {
            conectado = false;
        }
        return conectado;
    }

    Boolean  conect;
    String  url = "http://google.com";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_conect);
        // *** roda qnd abre - Augusto Furlan ***
        conect = verificaConexao();
        webView = (WebView) findViewById(R.id.webView);
        progress = (ProgressBar) findViewById(R.id.progress);
        //webView.setWebViewClient(new CustomWebViewClient());
        webView.setVisibility(webView.GONE);

        WebSettings ws = webView.getSettings();
        ws.setJavaScriptEnabled(true);
        ws.setSupportZoom(true);
        webView.setWebViewClient(new WebViewClient());



        new Thread(new Runnable() {
            @Override
            public void run() {

                SystemClock.sleep(10000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        showWebView();
                    }
                });
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                if(conect == true) {
                    webView.loadUrl(url);
                } else {webView.loadUrl("file:///android_asset/not-found.html");;}

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        showWebView();
                    }
                });
            }
        }).start();
        }



    private void showWebView() {
        webView.setVisibility(View.VISIBLE);
        progress.setVisibility(View.GONE);
    }

}
    
asked by anonymous 27.10.2015 / 21:15

1 answer

2

In fact, you have 3 threads. In the second thread you create (remembering that the Main Thread, which is responsible for the interface, is created automatically when creating the application process, so this is the second one you explicitly created):

new Thread(new Runnable() {
            @Override
            public void run() {
                if(conect == true) {
                    webView.loadUrl(url);
                } else {webView.loadUrl("file:///android_asset/not-found.html");;}

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        showWebView();
                    }
                });
            }
        }).start();
        }

You are calling the method that removes the progress, this:

 private void showWebView() {
        webView.setVisibility(View.VISIBLE);
        progress.setVisibility(View.GONE);
    }

Since this thread is created in Activity's onCreate (when it is not yet visible), you are probably removing progress before you can see it on the screen.

    
27.10.2015 / 21:33