发布到特定的帖子

时间:2015-03-30 22:26:33

标签: java android multithreading

我试图通过线程ID将某些东西发回特定(调用)线程 当它在UI线程上运行时,DoStuff()正在工作,但这不再是我的选择。

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();
}

如何在特定线程上发布和/或运行某些内容?

1 个答案:

答案 0 :(得分:1)

您在该线程上创建一个Handler并将runnable发布到该处理程序。如果您希望能够通过id发布到线程,则必须在某处维护一个线程ID的映射到Handlers。请记住,任何使用处理程序的线程都必须在某个时候调用Looper.loop()。