使 Android WebView 定期自动刷新

Making Android WebView autorefresh periodically

我正在尝试在 Android 中创建一个混合应用程序,它的 Web 视图应该每五分钟左右刷新一次,或者在用户更改服务后几秒钟刷新一次。我尝试过的大多数解决方案都可以概括为 this SO question's answer. 问题是每次应用程序尝试通过它刷新 Web 视图时,软件都会崩溃,因为 "an UI element has been called from non-UI thread".

还有其他选择吗?我想我可以通过网页本身的 Javascript 进行定期刷新,但考虑到我们的应用程序被设计为 运行 即使没有网络,我们也无法在用户更改时刷新它原生端的状态,不是最优的。有人有什么建议吗?

提前致谢

以 Toast 为例,说明如何继续调用它。你可以调用 reload();在用户更改信息而不是 onCreate 之后。

在oncreate中加载

Toast.makeText(LogThirdPager.this, "Hello", Toast.LENGTH_SHORT).show();
// mWebview.loadUrl("http://www.google.com");
reload();

然后在它后面调用这个。例如,它将继续每 5 秒重新加载一次页面。

public void reload() {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // Do something after 5s = 5000ms
            Toast.makeText(LogThirdPager.this, "Hello", Toast.LENGTH_SHORT).show();
            reload();
            // mWebview.loadUrl("http://www.google.com");
        }
    }, 5000);
}