Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 等待浏览器加载页面,清除缓存_Android - Fatal编程技术网

Android 等待浏览器加载页面,清除缓存

Android 等待浏览器加载页面,清除缓存,android,Android,我正在尝试编写一个android应用程序来测试手机的性能和电池寿命。我正在努力做到以下几点: //start timing //open browser to web page (using intent) //wait for browser to finish loading page //stop timing //calculate total time, write to file //clear browser cache //repeat until battery dies 我

我正在尝试编写一个android应用程序来测试手机的性能和电池寿命。我正在努力做到以下几点:

//start timing
//open browser to web page (using intent)
//wait for browser to finish loading page
//stop timing
//calculate total time, write to file
//clear browser cache
//repeat until battery dies
我的问题是,如何判断页面何时加载?我已经看到了一些关于javascript的提及,但是我还没有看到一个好的例子来理解如何将它集成到我的应用程序中(或者即使这是我想要实现的最好的想法)

我的第二个问题是,如何清除浏览器的缓存?防止浏览器从缓存加载也是一种可能的解决方案

我如何判断页面何时加载

欢迎您手动注意这一点

如果你认为你要自动化这个过程,那是不可能的,因为浏览器不是你的应用程序

如何清除浏览器的缓存

欢迎您在浏览器内部(如果浏览器有此选项)或通过“设置”应用程序的“应用程序”部分手动清除

如果你认为你要自动化这个过程,那是不可能的,因为浏览器不是你的应用程序

防止浏览器从缓存加载也是一种可能的解决方案

欢迎您在您正在测试的任何浏览器中手动配置,前提是相关浏览器具有相应的配置选项

如果你认为你要自动化这个过程,那是不可能的,因为浏览器不是你的应用程序

现在,可以想象,一些浏览器碰巧提供了API,允许您自动完成上述所有操作。开源项目的stock Browser应用程序没有,我也不知道有哪一个会这样(如果有人这样做的话,我会很害怕)


您也可以在自己的应用程序中使用WebView小部件,在这种情况下,您可以自动化所有这些内容,因为这是您的应用程序。

我有一个进度视图,在页面加载之前一直显示。这是通过以下方式实现的:

final WebView webView = (WebView) getActivity().findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            //are we done yet?
            if(progress == 100) {               
                try
                {
                    View progress_bar =(View) getActivity().findViewById(R.id.progress_bar);
                    //hide the progress view if we are done
                    if(progress_bar != null)
                        progress_bar.setVisibility(View.GONE);
                }
                catch(Exception e) {}
            }
        }
    });        
编辑:我尚未对此进行测试,但您是否尝试过以下方法来禁用缓存:

webView.getSettings().setAppCacheEnabled(false);

在阅读@commonware之后,我认为这是一个网络视图,但事实可能并非如此。如果您决定使用网络视图,请使用我的答案。我希望使用浏览器,但这似乎不可能,因此我将研究使用网络视图。好的,如果@commonware或我自己的答案有用,请将它们勾选为有用/向上投票,以供其他人将来使用。