Tag: ui thread

为什么不能通过UI线程的线程访问视图?

我知道没有线程可以访问当前视图,除非它是UI线程。 我想知道为什么? 为什么哪个线程正在改变视图? 这是安全原因吗? 这是我使用的工作: public void doLayout() { Runnable run = new Runnable() { public void run() { ViewerActivity.setContentView(R.layout.main); } }; handler.post(run); } private Handler handler;’ 每次我想改变布局时,这样做都很痛苦。 有不同的工作吗? 我知道异步任务,我从来没有找到一个好方法来使用它,它比我正在做的更好吗? 所有相关的答案都很贴心!

Guice在UI线程问题之外创建Swing组件?

我正在使用Google Guice作为IOC容器处理Java Swing应用程序。 事情进展顺利。 有一些UI问题。 当用Pushing像素替换标准L&F时由于在UI线程之外创建Guice的Swing组件,物质L&F应用程序未运行。 有没有办法告诉Guice在UI线程中创建Swing组件? 也许我应该创建自定义提供程序,它们将在SwingUtilities.invokeAndWait(Runnable)创建它们之后返回Swing组件。 我不喜欢在UI线程中运行整个应用程序的想法,但也许它只是一个完美的解决方案。

在Java / J2ME中与UI线程交互

我正在编写一个J2ME应用程序。 其中一个部分定期轮询目录的内容,如果有任何新内容,则在屏幕上绘制它们。 我已经通过让UI表单启动一个带有指针返回自身的轮询线程来完成此操作,并且当轮询线程找到它回调到表单并调用syncrhonized方法来更新它的显示时。 这似乎工作正常。 我的问题是这个。 在C#/ .NET中我知道让非UI线程更新UI并不好,处理它的正确方法是将其委托给UI线程。 例如以下内容: public void DoSomeUIThing() { if (this.uiComponent.InvokeRequired) { this.uiComponent.Invoke(someDelegateThatCallsBackToThis); } else { this.uiComponent.Text = “This is the update I want to happen”; } } 有关于如何管理此过程的J2ME等价物吗? Java怎么样? 或者Java / J2ME在这方面做得更好? 如果没有,这是怎么做到的? [编辑]看来Swing支持我通过SwingUtilities.invokeLater()和invokeAndWait()方法询问的内容。 是否有J2ME的等效框架?