Android 当webview拥有webviewclient时,活动将被销毁
这是我的密码:Android 当webview拥有webviewclient时,活动将被销毁,android,android-activity,webview,webviewclient,Android,Android Activity,Webview,Webviewclient,这是我的密码: public class AuthActivity extends Activity { public static final String REDIRECT_URL = "redirectUrl"; WebView webview; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); webview = new WebView(this)
public class AuthActivity extends Activity {
public static final String REDIRECT_URL = "redirectUrl";
WebView webview;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webview = new WebView(this);
setContentView(webview);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
parseUrl(url);
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(getApplicationContext(), description, Toast.LENGTH_LONG).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
});
webview.clearCache(true);
webview.clearHistory();
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
String url = VKPoster.getAuthUrl( );
webview.loadUrl(url);
}
private void parseUrl(String url) {
try {
if(url==null)
return;
if(!url.contains("error=")){
Intent intent=new Intent();
intent.putExtra(REDIRECT_URL, url);
setResult(Activity.RESULT_OK, intent);
}
finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}
当活动在没有webviewclient的情况下开始加载页面时,它将停止运行,但当设置webviewclient时,它工作正常
有人能给我解释一下这种行为吗?问题就出在这段代码中(当我发布问题时,我已经看到了。这简直是吹牛) }恰好是我们中最好的:)您应该选择您的答案作为接受的答案。
private void parseUrl(String url) {
try {
if(url==null)
return;
if(!url.contains("error=")){
Intent intent=new Intent();
intent.putExtra(REDIRECT_URL, url);
setResult(Activity.RESULT_OK, intent);
}
/* I finished app every time page loaded! What a shame */
finish();
} catch (Exception e) {
e.printStackTrace();
}