当前位置:编程学习 > wap >>

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求解。 --------------------编程问答-------------------- 用堆栈 把view放进去 --------------------编程问答-------------------- 一:你从A>B时别调用A.finish(),而B>C>D>E则调用B,C,D的finish(),这样你在E的时候点击返回,它会显示A,具体原理你去看下他的堆栈,不过如果你要是带参数跳转页面的话可能会报错
二:在E中重写onKeyDown方法,让它直接跳转到A --------------------编程问答-------------------- 有没有方法可以把特定的网页不存入历史里面啊???? --------------------编程问答-------------------- 不想退回的页面在跳转时候finish掉 --------------------编程问答--------------------
引用 4 楼  的回复:
不想退回的页面在跳转时候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); --------------------编程问答--------------------
引用 3 楼  的回复:
有没有方法可以把特定的网页不存入历史里面啊????

你应该去看看acitvity在栈中的结构,你打开一个A(activity)就等于将它放在栈中了,这时A位于栈的顶部,你再通过A跳转到B,会出现两种情况:1.你不调用A的finish方法,这时A位于栈底,B位于栈顶,你按后退键,B被移出了栈,销毁了,这时A会调用OnRestart()和OnResume()方法,你又可以看见A。2.你手动将A.finish(),A被你干掉了,B位于栈顶,你按后退键,B被销毁,由于A也被手动销毁了,所以这时你会退出程序。
activity在栈中遵循一个先进后出的原则。 --------------------编程问答--------------------
引用 8 楼  的回复:
引用 3 楼  的回复:

有没有方法可以把特定的网页不存入历史里面啊????

你应该去看看acitvity在栈中的结构,你打开一个A(activity)就等于将它放在栈中了,这时A位于栈的顶部,你再通过A跳转到B,会出现两种情况:1.你不调用A的finish方法,这时A位于栈底,B位于栈顶,你按后退键,B被移出了栈,销毁了,这时A会调用OnRestart()和OnResume()方法……
activity被finish后,整个程序是不是会被关团掉
--------------------编程问答-------------------- 我的是网页,不是一个一个的activity.有没有什么方法啊???
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,