android 有A,B,C,D,E几个页面,开发了一个android浏览器,想对这几个页面进行控制。当访问B,C,D网页时,浏览器不把B,C,D放入缓存中。效果是,我访问A>B>C>D>E,后,我按返回键时,不是E>D>C>B>A,而是E>A求解。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一:你从A>B时别调用A.finish(),而B>C>D>E则调用B,C,D的finish(),这样你在E的时候点击返回,它会显示A,具体原理你去看下他的堆栈,不过如果你要是带参数跳转页面的话可能会报错二:在E中重写onKeyDown方法,让它直接跳转到A 不想退回的页面在跳转时候finish掉 public boolean onKeyDown(int keyCode, KeyEvent event) {// 捕捉返回键 if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) { wv.goBack(); return true; } else if (keyCode == KeyEvent.KEYCODE_BACK) { ConfirmExit();// 按了返回键,但已经不能返回,则执行退出确认 return true; } return super.onKeyDown(keyCode, event); }给点分吧 在Eactivity中重载back键,Intent intent = new Intent();intent.setClass(E.this,A.class);startActivity(intent); 你应该去看看acitvity在栈中的结构,你打开一个A(activity)就等于将它放在栈中了,这时A位于栈的顶部,你再通过A跳转到B,会出现两种情况:1.你不调用A的finish方法,这时A位于栈底,B位于栈顶,你按后退键,B被移出了栈,销毁了,这时A会调用OnRestart()和OnResume()方法,你又可以看见A。2.你手动将A.finish(),A被你干掉了,B位于栈顶,你按后退键,B被销毁,由于A也被手动销毁了,所以这时你会退出程序。activity在栈中遵循一个先进后出的原则。 activity被finish后,整个程序是不是会被关团掉 我的是网页,不是一个一个的activity.有没有什么方法啊??? SDK tools 跟新不了 纠结。。 如何调用opencore播放mp3文件 小弟想做个会动的圆,但有问题,请指教 求助:Android xml词汇定义 请教:关于在程序里获取手机号码 系统相机拍照功能 做APN开关是遇到问题 List,ArrayList函数返回时出错,求教大神 关于程序员的转行转岗咨询 请教,为何从桌面悬浮窗service启动activity要等待3秒钟? 求解,怎样改,R.id老是出错 在setOnItemSelectedListener中如何将数据传给新的activity?
二:在E中重写onKeyDown方法,让它直接跳转到A
{// 捕捉返回键
if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack())
{
wv.goBack();
return true;
} else if (keyCode == KeyEvent.KEYCODE_BACK) {
ConfirmExit();// 按了返回键,但已经不能返回,则执行退出确认
return true;
}
return super.onKeyDown(keyCode, event);
}给点分吧
intent.setClass(E.this,A.class);
startActivity(intent);
activity在栈中遵循一个先进后出的原则。