【问题标题】:Android WebView loads startpage when turning smartphone转动智能手机时Android WebView加载起始页
【发布时间】:2016-06-07 03:41:09
【问题描述】:

我得到了这个代码(仅相关部分):

public class MainActivity extends AppCompatActivity {
    private WebView webView;
    private int whichPage = 0;

    protected void onCreate(Bundle savedInstanceState) {
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(this.getString(whichPage == 0 ? R.string.vPlan : R.string.tPlan));
    }
}

在选项菜单中,用户可以更改页面... 现在我的问题是,每次用户转动他/她的手机时,它都会加载 R.string.vPlan,即使它被设置为 tPlan(并且 whichPage 包含 1)。

有没有办法阻止应用跳转到 vPlan 甚至完全停止加载页面?

谢谢。

【问题讨论】:

    标签: java android webview reload


    【解决方案1】:

    如果有帮助就试试这个

    public class MainActivity extends AppCompatActivity {
    private WebView webView;
    private int whichPage = 0;
    
    protected void onCreate(Bundle savedInstanceState) {
    
    if (savedInstanceState == null){
    
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(this.getString(whichPage == 0 ? R.string.vPlan : R.string.tPlan));
    } else {
        // do nothing
    }
    

    }

    【讨论】:

      【解决方案2】:

      当您转动智能手机时,正在重新创建活动并且正在重新初始化变量。因此,每次旋转时,whichPage 值都会设置为 0。你有两个选择:

      1- 您可以使用onSaveInstanceState()onRestoreInstanceState() 来保存活动状态(即使在用户旋转时也要跟踪所需的变量)。结帐Saving Android Activity state using Save Instance StateRecreating an Activity

      2- Stop the activity from being recreated 旋转设备。但是Google Engineers suggest against 这种方式。

      希望对你有帮助。

      【讨论】:

      • @user5055454 抱歉,没听懂。
      猜你喜欢
      • 2014-04-30
      • 2012-04-07
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      相关资源
      最近更新 更多