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/
我正在调查由 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/