bus*_*ver 4 crash url multithreading android webview
与此问题类似,但解决方案并不适用于我的问题.
运行函数webview.loadUrl时Android应用程序崩溃关闭时
出现以下错误:
E/AndroidRuntime(1593):引起:java.lang.Throwable:警告:在线程'WebViewCoreThread'上调用了一个WebView方法.必须在UI线程上调用所有WebView方法.WebView的未来版本可能不支持在其他线程上使用.
编辑:现在尝试在runOnUiThread(new Runnable(){})中运行该函数,但是在上下文中输入错误并无法进入runOnUiThread.
这是完整的代码:
public class MyJavaScriptInterface {
@JavascriptInterface
public void androidFieldPrompt(String title, String msg, final String funct) {
final EditText input = new EditText(MainActivity.this);
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
alert.setTitle(title);
alert.setMessage(msg);
alert.setView(input);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
// ERROR IS BEING THROWN HERE
webView.loadUrl("javascript:window."+funct+"('"+value+"')");
return;
}
});
alert.show();
}
}
Run Code Online (Sandbox Code Playgroud)
E/AndroidRuntime(1593):引起:java.lang.Throwable:警告:在线程'WebViewCoreThread'上调用了一个WebView方法.必须在UI线程上调用所有WebView方法.WebView的未来版本可能不支持在其他线程上使用.
正如错误所指出的那样..您在非UI线程上调用webview方法(在单击侦听器内).
在调用web视图方法时,你应该使用runOnUiThread来使用主线程,在onClick里面
MainActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
String value = input.getText().toString();
webView.loadUrl("javascript:window."+funct+"('"+value+"')");
return;
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3517 次 |
最近记录: |