处理程序不执行运行

时间:2012-12-29 00:16:19

标签: android

这感觉它应该是一个非常简单的任务,但我遇到了很多问题。在我的程序中,我已经为自己扩展了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);
                   }
});

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

1 个答案:

答案 0 :(得分:4)

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

您需要做的是将Activity传递给包含示例中代码的类,然后在其上调用runOnUiThread()。或者,您可以传递在 UI线程上创建的Handler,例如在运行Activity UI的线程上创建它,然后在post上调用{{1}}那个处理程序。

请注意,这是一个糟糕的建议,您似乎正在尝试对抗Android框架。但是,如果没有关于你实际试图做什么的进一步信息,那就没有什么可说的了。

相关问题