我有一个应用程序,我在webview中加载url。但是当我退出应用程序然后再次启动应用程序它显示相同的页面。我希望每次应用程序启动它应该从主页面开始。我怎么能做这个?这是我的oncreate方法:
web = (WebView) findViewById(R.id.webview01);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setUseWideViewPort(true);
web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
web.getSettings().setPluginState(PluginState.ON);
web.getSettings().setJavaScriptEnabled(true);
web.setWebViewClient(new myWebClient());
这是mywebclient类:
public class myWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
if(url.startsWith("http://www.amazon.com/")) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
else{
view.loadUrl(url);
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
view.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
}
这是onresume():
@Override
protected void onResume() {
super.onResume();
web.setVisibility(View.INVISIBLE);
web.loadUrl("http://savebigshopper.com/maybelline");
}
请帮忙
答案 0 :(得分:0)
以上代码行位于您的活动中的哪个位置?
web = (WebView) findViewById(R.id.webview01);
//...
web.loadUrl("http://savebigshopper.com/maybelline");
我的猜测是onCreate
方法。如果这是原因,您应该将它们移到onResume
方法中。
编辑:真的再看一遍真正需要转移到onResume
的唯一代码是这一行:
web.loadUrl("http://savebigshopper.com/maybelline");
EDIT2:
“一切正常,但当我再次启动应用程序时,显示上一页,然后显示主页”
这对我来说很有意义,因为它会像网络浏览器一样。您可以隐藏webview,直到完成加载。
// add this line to your onPageFinished method inside your WebViewClient
view.setVisibility(View.VISIBLE); //Show view when page has loaded.
// inside onResume method
web.setVisibility(View.INVISIBLE); //Hide it first
web.loadUrl("http://savebigshopper.com/maybelline");