我正在尝试通过线程ID将内容发布回特定的(调用)线程。
DoStuff()在UI线程上运行时正在工作,但是对我来说这不再是一个选择。
void DoStuff()
{
long origThreadID_A = Thread.currentThread().getId();
Log.d(TAG, "origThreadID (A): " + origThreadID_A);
new Thread(new Runnable()
{
public void run()
{
//Do something on new thread
<[WHAT_GOES_HERE?]>(new Runnable() //This used to be 'activity.runOnUiThread',
{
public void run()
{
long origThreadID_B = Thread.currentThread().getId();
Log.d(TAG, "origThreadID (B): " + origThreadID_B);
//Do something on original thread
}
});
}
}).start();
}
如何在特定线程上发布和/或运行某些内容?
最佳答案
您在该线程上创建一个Handler并将可运行对象发布到该处理器。如果您希望能够按ID发布到线程,则必须维护某个地方的线程ID到Handlers的映射。请记住,任何使用处理程序的线程都必须在某个时候调用Looper.loop()。