这是我的代码:
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()
方法只运行一次吗?
答案 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。