Android loadUrl(url)不执行任何操作

Android loadUrl(url)不执行任何操作,android,webview,thread-safety,Android,Webview,Thread Safety,我最近为Android编写了一个简单的Twitter应用程序,学习Twitter API和OAuth的诀窍 应用程序的主要活动只是要求用户输入用户名。然后它调用另一个处理OAuth和TwitterAPI调用的活动。它将用户重定向到授权页面,然后在用户完成后返回应用程序 它过去工作得很好,但现在由于某种原因,当我调用webview.loadUrl(authorizationURL)时,什么也没发生。但是我从来没有改变过任何会影响WebView的东西。。。这是我的密码: @Override publ

我最近为Android编写了一个简单的Twitter应用程序,学习Twitter API和OAuth的诀窍

应用程序的主要活动只是要求用户输入用户名。然后它调用另一个处理OAuth和TwitterAPI调用的活动。它将用户重定向到授权页面,然后在用户完成后返回应用程序

它过去工作得很好,但现在由于某种原因,当我调用webview.loadUrl(authorizationURL)时,什么也没发生。但是我从来没有改变过任何会影响WebView的东西。。。这是我的密码:

@Override
public void onResume() {
    super.onResume();
    try {

        if(weNeedCredentials()) {
            obtainCredentials();
        }

        follow(mUsername);

    } catch (OAuthException oae) {
        // omitted
    }
}


private boolean weNeedCredentials() {
    // assume the method returns true
}


private void obtainCredentials() {
    final Token requestToken = mOauthService.getRequestToken();
    String authUrl = mOauthService.getAuthorizationUrl(requestToken);
    // I verified that authUrl is the correct url (and != null)

    final WebView oauthView = (WebView) findViewById(R.id.oauthview);

    oauthView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(someCondition) {
                oauthView.setVisibility(View.GONE);

                doOtherStuff();

                return true;
            }
            return super.shouldOverrideUrlLoading(view, url);
        }
    });

    oauthView.getSettings().setJavaScriptEnabled(true);
    oauthView.loadUrl(authUrl);

}
以下是我的布局xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <WebView 
        android:id="@+id/oauthview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

</LinearLayout>

而且我在清单中包括了正确的互联网权限

WebViewCoreThread将在应用程序的整个生命周期内运行,稍后会弹出WebViewWorkerThead,但不会出现WebView(甚至不会出现白色屏幕)。该应用程序也从不阻塞。它继续运行,就像loadUrl()行被注释掉一样

我在我的手机(DroidX2)和模拟器上进行了测试,结果都是一样的。任何帮助都将不胜感激

提前谢谢

它继续运行,就像loadUrl()行被注释掉一样

它将始终“继续运行,就像将
loadUrl()
行注释掉一样”<代码>加载URL()是异步的,不会阻塞

即兴,或者:

  • weNeedCredentials()
    正在返回
    false
    ,或者
  • follow()
    正在替换UI,或
  • Twitter正在进行重定向,并且
    someCondition
    true
    ,因此您正在使
    WebView
    立即消失
  • 正在加载的URL存在问题

有没有办法同步执行loadUrl()?WebView必须在调用follow()之前启动,才能使应用程序正常运行。@Blake M.:“有什么方法可以同步执行loadUrl()吗?”--没有。“WebView必须在调用follow()之前启动,才能使应用程序正常运行。”--然后不要调用
follow()
直到页面加载。这很简单。。现在很有魅力。非常感谢!