这感觉它应该是一个非常简单的任务,但我遇到了很多问题。在我的程序中,我已经为自己扩展了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);
}
});
当我运行此代码时,它不会执行。我不知道为什么。谢谢你的时间。
答案 0 :(得分:4)
您无法在 UI线程之外创建Handler
。好吧,你可以,但你必须将该线程变成一个消息队列,而不仅仅是Looper.prepare()
。
您需要做的是将Activity
传递给包含示例中代码的类,然后在其上调用runOnUiThread()
。或者,您可以传递在 UI线程上创建的Handler
,例如在运行Activity
UI的线程上创建它,然后在post
上调用{{1}}那个处理程序。
请注意,这是一个糟糕的建议,您似乎正在尝试对抗Android框架。但是,如果没有关于你实际试图做什么的进一步信息,那就没有什么可说的了。