من یک اپ دارم که فقط یک اکتیویتی داره و در اون از یک webview استفاده شده که به محض باز شدن اپ به یک ادرس مشخص میره و صفحه لوگین را باز میکنه
برای این یک دیالوگ تعریف کردم که تا زمان لود کامل Progress dialog باز باشه و بنویسه در حال لود شدن
حال مشکل اینجاست که وقتی بعد از وارد کردن رمز و کلیک بر روی دکمه ورود ریدایرکت که میشه دیگه قسمت OnPageFinish فراخوانی نمیشه که دستور بسته شدن دیالوگ را بده و همینطور پیام در حال لود میمونه روی صفحه.
در بقیه صفحات که ریدایرکت ندارن به محض لود شدن کامل بسته میشه
میخواستم بدونم راه حلی براش هست؟


کد های استفاده شده:



package com.dpartiranco.com.partiranco;



import android.app.Activity;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;



public class Partiranco extends AppCompatActivity {

public WebView web;
Button btnBack;
Button btnExit;
String url;
ProgressBar bar;
ProgressDialog pd = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_partiranco);
//bar = (ProgressBar) findViewById(R.id.progressBar);
url = "http://www.44060719.ir/CpLogin2.ASP";





ConnectivityManager manager=(ConnectivityManager)getSystemService(this .CONNECTIVITY_SERVICE);
NetworkInfo networkiInfo = manager.getActiveNetworkInfo();


if( networkiInfo != null && networkiInfo.isConnected()) {

getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);







// Toast.makeText(Partiranco.this,"در حال اتصال به سرور پارتیران", Toast.LENGTH_LONG).show();

web = (WebView) findViewById(R.id.actv_12_web);
web.setWebViewClient(new WebViewClient());



// web.getSettings().setCacheMode(WebSettings.LOAD_CA CHE_ELSE_NETWORK);
// web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl(url);



btnBack = (Button) findViewById(R.id.btnBack);



btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {



// finish();
//Intent intent = new Intent(Intent.ACTION_MAIN);
//intent.addCategory(Intent.CATEGORY_HOME);
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startActivity(intent);


web.loadUrl(url);

}
});

}else {

Toast.makeText(Partiranco.this,"مشکلی در اتصال به اینترنت پیش آمده است", Toast.LENGTH_LONG).show();

}




btnExit = (Button) findViewById(R.id.btnExit);
btnExit.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

backButtonHandler();

//finish();
//Intent intent = new Intent(Intent.ACTION_MAIN);
//intent.addCategory(Intent.CATEGORY_HOME);
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startActivity(intent);
}
});





}

private class WebViewClient extends android.webkit.WebViewClient {


@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;
}




@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {




pd = new ProgressDialog(Partiranco.this);
pd.setMessage("در حال دریافت اطلاعات");
pd.show();


super.onPageStarted(view, url, favicon);



}



@Override
public void onPageFinished(WebView view,String url) {

pd.dismiss();


super.onPageFinished(view, url);

}





}



//برای بک ر فتن در وب ویو بجای خروج
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(web.canGoBack()){
web.goBack();
}else{
finish();
}
return true;
}

}
return super.onKeyDown(keyCode, event);
}


@Override
public void onBackPressed() {
backButtonHandler();
return;
}

public void backButtonHandler() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Partiranco.this);
// عنوان دیالوگ
alertDialog.setTitle("تایید خروج");
// پیام
alertDialog.setMessage("آیا مطمئنید که میخواهید خارج شوید؟");
// آیکون دیالوگ
alertDialog.setIcon(R.drawable.logod);
// دکمه yes
alertDialog.setPositiveButton("بله",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
// دکمه no
alertDialog.setNegativeButton("خیر",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// نشان دادن دیالوگ
alertDialog.show();
}






}