在自定义线程中执行可运行参数 class

Executing a runnable argument in a custom thread class

我想在我的主线程中定义我的 runnable,然后将其作为参数传递给另一个线程,如下所示 -

final Runnable runnable = new Runnable() {
            @Override
            public void run() {

                Log.i("Running runnable","");
            }
        };

Handler handler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);

        text.setText(msg.obj.toString());
    }
};

ThreadTest handlerThreadTest = new ThreadTest(runnable, handler);
                handlerThreadTest.start();

ThreadTest class 定义如下 -

public class ThreadTest extends Thread {

private Handler handler;
private Runnable runnable;

public ThreadTest(Runnable runnable, Handler handler) {

    this.handler = handler;
    this.runnable = runnable;
}

@Override
public void run() {
    super.run();

    runnable.run();

    Message msg = handler.obtainMessage();
    msg.obj = "YUSSSSSS!";
    handler.sendMessage(msg);
} }

我可以将 "YUSSSSSS" 消息发送给我的处理程序,但 runnable.run() 似乎不起作用,因为我在 logcat.

中看不到任何内容

我哪里弄错了?

Logcat 倾向于删除空消息,在您的日志中添加一些字符,您可能会在 "Running runnable"

的 TAG 下看到一些内容
Log.i("RunnableImpl", "Running runnable");