我正在调查 Dropbox 发布的跨平台库。以下代码来自它。我有问题(1)它使处理程序与主循环器连接。我听说这种方式我们可以创建 ui 线程处理程序。但它是否与原始 ui 线程(活动 ui 线程)有任何关系,或者它真的创建了另一个单独的 ui 线程?
如果有 2 个 ui 线程,那么一个 ui 线程是否有可能访问另一个 ui 组件并修改其 ui?
public class AndroidEventLoop extends EventLoop
{
Handler mHandler;
public AndroidEventLoop()
{
mHandler = new Handler(Looper.getMainLooper());
}
public void post(final AsyncTask task)
{
mHandler.post(new Runnable()
{
@Override
public void run()
{
task.execute();
}
});
}
}
public abstract class EventLoop {
public abstract void post(AsyncTask task);
}
它在活动中调用
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
EventLoop mainThread = new AndroidEventLoop();