0

这感觉应该是一个非常简单的任务,但我遇到了很多问题。在我的程序中,我为自己扩展了 WebView 类,并尝试以编程方式将其添加到布局中。这是我的代码:

Looper.prepare();
Handler handler = new Handler();
handler.post(new Runnable() {
public void run() {
            MyWebView webView = new MyWebView(context,1,2,3,4);
            appState.projectWebView.add(webView);
            addView(webView);
                   }
});

当我运行此代码时,它不会执行。我不知道为什么。谢谢你的时间。

4

1 回答 1

4

您不能在UI 线程Handler之外创建。好吧,你可以,但是你必须将该线程变成一个消息队列,而不仅仅是.Looper.prepare()

您需要做的是Activity向包含示例中代码的类传递一个并调用runOnUiThread()它。或者,您可以在UI 线程上传递Handlercreated ,例如在运行UI 的线程上创建它,然后调用该处理程序。Activitypost

请注意,这是一个糟糕的建议,您似乎正在尝试针对 Android 框架进行操作。但是,如果没有关于您实际尝试做什么的更多信息,就没有什么可以说的了。

于 2012-12-29T00:29:19.563 回答