android 活套和 ui 线程

android Looper and ui thread

我正在调查由 dropbox 发布的跨平台库。 以下代码来自它。 我有问题 (1)它制作与主循环程序连接的处理程序。 我听说我们可以通过这种方式创建 ui 线程处理程序。 但是它和原来的ui thread(Activity ui thread)有关系吗 或者它真的创建了另一个单独的 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);
}

它调用了 Activity

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    EventLoop mainThread = new AndroidEventLoop();

不,它没有创建第二个主线程。发布到 AndroidEventLoop 的所有任务都在主线程上处理。 例如,这使您能够在后台线程处理数据后在 UI 中进行更改。

http://developer.android.com/reference/android/os/Looper.html#getMainLooper() https://blog.nikitaog.me/2014/10/11/android-looper-handler-handlerthread-i/