【发布时间】:2012-12-08 15:41:13
【问题描述】:
在WebView 的子类中,我曾经在getTitle() 的重写方法中有这一行:
String title = super.getTitle();
它在所有版本的 Android 中运行良好,直到我在 Android 4.1 手机上测试我的应用程序,这在 super.getTitle() 行上给了我这个警告:
12-20 21:38:27.467: W/webview_proxy(2537): java.lang.Throwable: 警告:在线程“WebViewCoreThread”上调用了 WebView 方法。 必须在 UI 线程上调用所有 WebView 方法。未来版本的 WebView 可能不支持在其他线程上使用。
所以,我正在考虑通过runOnUiThread() 来解决这项新法令:
Activity a = this.getActivity();
a.runOnUiThread(new Runnable() {
public void run() {
String title = super.getTitle();
}
});
但是这段代码甚至无法编译,因为super 不再引用WebView,而是引用Activity。
知道如何从 UI 线程super.getTitle() 吗? (具有上述约束,在WebView的子类的getTitle()中)
【问题讨论】:
-
在哪里您显示的带有
Activity a = ...的sn-p 是?您是否将其放在MyWebView类的重写getTitle()方法中? -
其实上面的匿名
Runnable类中的super指向Object:)