我正在开发一个使用HTML页面进行UI的jQuery Mobile应用程序 有一些JS函数,我通过它调用一些本机函数。有一些带有输入字段的弹出窗口和对话框,但是当我在html中打开一些对话框或弹出窗口时,logCat会给我这个警告
W/webview_proxy(8104): java.lang.Throwable: Warning: A WebView method was called on thread
'WebViewCoreThread'. All WebView methods must be called on the UI thread. Future versions of
WebView may not support use on other threads.
在这些输入字段中输入值时,页面和键盘开始闪烁。 这就是我称之为本土函数的方式
JS功能
function SettingMethod()
{
activity.setSettings();
}
Android方法
@JavascriptInterface
public void setSettings() {
SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(MainActivity.this);
final String webServiceURL = settings.getString("URL", "");
final String InputFolder = settings.getString("INPUTFOLDER", "");
final String OutPutFolder = settings.getString("OUTPUTFOLDER", "");
index.loadUrl("javascript:setSettings('" + webServiceURL + "','"
+ InputFolder + "','" + OutPutFolder + "')");
}
我该如何消除这种滞后?
答案 0 :(得分:0)
使用
解决了问题runOnUiThread(new Runnable() {
public void run() {
index.loadUrl("javascript:setSettings('" + webServiceURL + "','"
+ InputFolder + "','" + OutPutFolder + "')");
}
});