Reputation: 126445
When trying to open a webview on my nexus 4 now with Android 4.4 (Kit kat) I'll getting this error message:
Calling View methods on another thread than the UI thread.;
java.lang.IllegalStateException: Calling View methods on another thread than the UI thread.
com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:268)
Since i update to Android 4.4 my Nexus 4.
Upvotes: 6
Views: 12093
Reputation: 384
If runOnUiThread is not available for whatever reason, you can also use the following code to bypass this error (say you are wanting access to a View without needing to display it):
Handler handler = new Handler(Looper.getMainLooper());
try
{
handler.post(
new Runnable()
{
@Override
public void run()
{
DesiredMethod(); // Where this method runs the code you're needing
}
}
);
} catch (Exception e)
{
e.printStackTrace();
}
Upvotes: 2
Reputation: 1759
what's your code like? you can try
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Your code
}
});
Upvotes: 8
Reputation: 757
just check migrating web view of 4.4 google added and changed some things in it here
runOnUiThread(new Runnable() {
@Override
public void run() {
// Code for WebView goes here
}
});
// This code is BAD and will block the UI thread
webView.loadUrl("javascript:fn()");
while(result == null) {
Thread.sleep(100);
}
Upvotes: 7