首页 > 解决方案 > 重新打开时是否可以在浏览器中重新加载网站

问题描述

所以我的基本目标是在 android studio 中创建一个浏览器,我将默认 url 设为 google.com,还有一个搜索栏可用于输入任何 url。我要做的是,每当用户关闭应用程序时,以及下一次打开应用程序时,它都应该重新加载上一个站点。例如,如果用户搜索 Facebook.com 并关闭应用程序,则下次打开应用程序时应重新加载 Facebook.com 而不是主页(即 Google.com)

标签: androidbrowserandroid-webview

解决方案


您可以每次手动保存 webview 的状态,然后使用SharedPreferences恢复它。要保存退出前访问的最后一个 URL 用户,您可以这样做:

@Override
protected void onPause() {
    super.onPause();
    SharedPreferences prefs = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
    Editor mEditor = prefs.edit();
    mEditor.put("lastUrlVisited", mWebView.getUrl());
    mEditor.commit();
}

为了检索数据,您可以将这些行添加到 onCreate() 方法:

SharedPreferences prefs = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
String tmpURL = prefs.getString("lastUrlVisited", "");
if(!tmpURL.equals("")) {
    mWebView.loadUrl(tmpURL);
}

或者根据您的需要,您可以在每次恢复活动时在 onResume() 方法中执行此操作:

@Override
protected void onResume() {
    super.onResume();
    SharedPreferences prefs = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
    String tmpURL = prefs.getString("lastUrlVisited", "");
    if(!tmpURL.equals("")) {
        mWebView.loadUrl(tmpURL);
    }
}

推荐阅读