安卓 Looper 和 UI 线程



我正在调查由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();

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

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

相关内容

  • 没有找到相关文章

最新更新