Как остановить загрузку активности веб-просмотра Android, когда другое действие закрыто - PullRequest
0 голосов
/ 15 октября 2018

У меня есть приложение для просмотра веб-страниц в Android, с более чем 3 различными действиями, моя проблема в том, что когда я запускаю новое действие и закрываю его с помощью finish(), основное действие в веб-просмотре обновится снова.Можно ли предотвратить его обновление, когда я этого не хочу, и обновлять только в том случае, если я этого хочу?Я следил за несколькими постами, но получаю сообщения об ошибках cannot resolve symbol FragmentIdentifier и других.Вот ссылка Запретить перезагрузку / просмотр веб-страниц, когда вы возвращаетесь в приложение и когда нажимаете кнопку выключения

Ниже приведено то, что у меня есть в методе onresume, чтобы запомнить последний сохраненный URL.

protected void onResume() {
    super.onResume();
    //String message = getIntent().getStringExtra(FSMainActivity.FragmentIdentifier);
    if(FSwebview != null) {
        SharedPreferences r_prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
        // String ssn = r_prefs.getString("sessionParameter","");
        String lastPage = r_prefs.getString("lastUrl", "");
        if(!lastPage.equals("")) {
            /*if (message == null || message.compareTo(FSMainActivity.showWebViewFragment) == 0) {
                if (!getSavedInstance()){
                    changeFragment(new WebViewFragment());
                }

            } else if (message.compareTo(FSMainActivity.showLoginFragment) == 0) {
                changeFragment(new LoginFragment());
        }*/
           appLoadUrl(lastPage, false);
       }else{
          appLoadUrl(APP_URL, false);
       }
    }
}

Мое веб-приложение

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    WebView mWebView = new WebView(this);

    //now do whatever u want
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.loadUrl("https://example.com/index2.php");
    mWebView.setInitialScale(130);

    //finally
    setContentView(mWebView);
}

Я храню последний URL ниже

 protected void onPause() {
        super.onPause();
        SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
        SharedPreferences.Editor edit = prefs.edit();
        edit.putString("lastUrl", FSwebview.getUrl());
        edit.commit();
    }

1 Ответ

0 голосов
/ 15 октября 2018

Поскольку вы также загружаете свои URL-адреса в onResume(), он будет вызван, когда ваше другое действие закроется, и действие веб-просмотра окажется в фокусе.Здесь у вас есть 2 варианта.

  1. Загружайте ваши URL только в методе onCreate () , так как он не будет вызываться снова, пока ваша деятельность не будет перезапущена.
  2. Перед завершением вашего второго действия сохраните некоторое логическое значение либо в общих настройках, либо в качестве статической переменной, например, для

    sharedPreferences.putBoolean («действие завершено», true);

А затем в вашем методе onResume () проверьте вышеуказанное значение логической переменной перед загрузкой ваших URL.Не забудьте установить значение обратно в false в соответствии с вашими потребностями, желательно при первом выполнении метода onStop ()

...