首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android webview 调用 goBack() 回来上一页 页面有时候自动刷新

2013-07-16 
android webview 调用 goBack() 返回上一页页面有时候自动刷新我的布局里有一个webview,现在调用goBack()

android webview 调用 goBack() 返回上一页 页面有时候自动刷新
我的布局里有一个webview,现在调用goBack() 返回上一页有时候会自动刷新,有没有办法可以控制它goback时不刷新
[解决办法]
可以看看WebSettings的setCacheMode (int mode)方法
[解决办法]
页面有变化会导致,从代码上看:
    if (sameDocumentNavigation)
        loadSameDocumentItem(item);
    else
        loadDifferentDocumentItem(item, loadType);
而loadDifferentDocumentItem函数
        switch (loadType) {
            case FrameLoadTypeReload:
            case FrameLoadTypeReloadFromOrigin:
                request.setCachePolicy(ReloadIgnoringCacheData);
                break;
            case FrameLoadTypeBack:
            case FrameLoadTypeBackWMLDeckNotAccessible:
            case FrameLoadTypeForward:
            case FrameLoadTypeIndexedBackForward:
                // If the first load within a frame is a navigation within a back/forward list that was attached 
                // without any of the items being loaded then we should use the default caching policy (<rdar://problem/8131355>).
                if (m_stateMachine.committedFirstRealDocumentLoad() && !itemURL.protocolIs("https"))
                    

request.setCachePolicy(ReturnCacheDataElseLoad);
                break;
            case FrameLoadTypeStandard:
            case FrameLoadTypeRedirectWithLockedBackForwardList:
                break;
            case FrameLoadTypeSame:
            default:
                ASSERT_NOT_REACHED();
        }

        action = NavigationAction(itemOriginalURL, loadType, false);
    }
    
    if (!addedExtraFields)
        addExtraFieldsToRequest(request, m_loadType, true, formData);

    loadWithNavigationAction(request, action, false, loadType, 0);
而最后一个函数 无论从不从cache拿数据 都会刷新

热点排行