웹뷰 구현했는데
스크립 얼럿 박스를 눌러서 웹뷰에서 다이얼을 띄우는데
서버 반응이 늦어서 다이얼이 자꾸 늦게 뜨더라고요
이상태에서 액티비티를 finish() 하면
자꾸 윈도우 토큰에러뜨고 뒤늦게 얼럿이 반응하더라고요 .. 해결방법없나요? ㅠㅠ
소스 첨부합니다.
mWebview.setWebChromeClient(new WebChromeClient()
{
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result)
{
Log.e("onJsAlert url = " +url + " // " + "message = " + message );
//if(null==view)return;
final JsResult r = result;
// return super.onJsAlert(view, url, message, result);
if(null == mContext)return false;
new AlertDialog.Builder(mContext)//mContext.getApplicationContext());
/* .setTitle("AlertDialog") */
.setMessage(message).setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
r.confirm();
}
}).setCancelable(false).create().show();
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result)
{
Log.e("onJsConfirm url = " +url + " // " + "message = " + message );
// return super.onJsConfirm(view, url, message, result);
final JsResult r = result;
// return super.onJsAlert(view, url, message, result);
if(null == mContext)return false;
new AlertDialog.Builder(mContext)
/* .setTitle("AlertDialog") */
.setMessage(message).setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
r.confirm();
}
}).setNegativeButton(android.R.string.no, new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface arg0, int arg1)
{
r.cancel();
}
}).setCancelable(false).create().show();
return true;
}
});




자답입니다.
커스텀 웹뷰였는데 ...
getParent() 메소드를 alert 에 인자로 줘도 안먹혀서
액티비티에서 onDestory 가 될때 웹뷰에 mWebview.setWebChromeClient(null) 을 줬습니다.
그러니 뒤늦게 날라오는 jsAlert 메소드가 더이상 호출되지 않았습니다...ㅠ