我正在尝试在Android中创建一个混合应用程序,该应用程序的Web视图应该每隔五分钟左右刷新一次,或者在用户完成服务更改后几秒钟刷新。我尝试过的大多数解决方案都可以归纳为this SO question's answer.问题是,每次应用程序尝试刷新Web视图时,软件都会因为“从非UI线程调用UI元素”而崩溃。
还有另一种选择吗?我想我可以通过网页本身的Javascript进行定期刷新,但考虑到我们的应用程序设计为即使没有网络也能运行,我们无法在用户更改本机状态时刷新它,它是不是最佳的。有没有人有任何建议?
提前致谢
答案 0 :(得分:3)
使用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);
}