无法在android中理解Runnable

时间:2016-04-27 06:24:31

标签: java android multithreading runnable android-handler

这是我的代码:

public class MainActivity extends AppCompatActivity {

    Runnable runnable;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        runnable=new Runnable() {
            @Override
            public void run() {
                Log.i("hello","runnable") ;
            }
        };
    }

}

为什么不打印日志?我需要一个处理程序然后传递runnable对象吗? run()方法只运行一次吗?

1 个答案:

答案 0 :(得分:3)

目前你只是定义了你的runnable,但它永远不会被调用。有一些方法可以使用runnable例如在线程中或在处理程序中。

以下是您无法更新UI的线程示例:

new Thread(runnable).start();

如果您需要更新UI,您应该使用这样的处理程序:

new Handler().post(runnable); // do as soon as possible
new Handler().postDelayed(runnable, 300); // do it after 300ms

通常它没有意义,但你可以使用你的runnable作为这样的一种回调:

runnable.run();

通过多次使用上述三个示例,可以多次使用runnable。