有A,B,C,D,E几个页面,开发了一个android浏览器,想对这几个页面进行控制。当访问B,C,D网页时,浏览器不把B,C,D放入缓存中。效果是,我访问A>B>C>D>E,后,我按返回键时,不是E>D>C>B>A,而是E>A求解。

解决方案 »

  1.   

    一:你从A>B时别调用A.finish(),而B>C>D>E则调用B,C,D的finish(),这样你在E的时候点击返回,它会显示A,具体原理你去看下他的堆栈,不过如果你要是带参数跳转页面的话可能会报错
    二:在E中重写onKeyDown方法,让它直接跳转到A
      

  2.   

    不想退回的页面在跳转时候finish掉
      

  3.   

    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);
    }给点分吧
      

  4.   

    在Eactivity中重载back键,Intent intent = new Intent();
    intent.setClass(E.this,A.class);
    startActivity(intent);
      

  5.   

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

  6.   

    activity被finish后,整个程序是不是会被关团掉
      

  7.   

    我的是网页,不是一个一个的activity.有没有什么方法啊???