@nabokovsafran

Android. Как избавиться от двойного запуска onPageFinished?

Здравствуйте. Моя проблема заключается в том, что в следующем коде дважды вызывается функция onPageFinished, что, как следствие, приводит к двойному запуску startActivity(showMainPage).
public class Authorization extends Activity {

    WebView mWebView;
    final String redirect_url = "https://oauth.vk.com/blank.html#access_token=";
    Intent showMainPage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_authorization);
        mWebView = (WebView) findViewById(R.id.webView);
        showMainPage = new Intent(this, MainActivity.class);
        mWebView.setWebViewClient(new MyWebViewClient());
        mWebView.loadUrl(this.getIntent().getStringExtra("url"));
    }

    protected class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            super.shouldOverrideUrlLoading(view, url);
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            if (url.startsWith(redirect_url)) {
                showMainPage.putExtra("url with token", url);
                startActivity(showMainPage);
                finish();
            }
        }
    }
}
  • Вопрос задан
  • 2838 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы