无法理解 android 中的 Runnable
Not able to understand Runnable in android
这是我的代码:
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") ;
}
};
}
}
为什么不打印日志?我需要一个处理程序然后在其中传递可运行对象吗? run()
方法只运行一次吗?
目前你只是定义你的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可以被多次使用。
这是我的代码:
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") ;
}
};
}
}
为什么不打印日志?我需要一个处理程序然后在其中传递可运行对象吗? run()
方法只运行一次吗?
目前你只是定义你的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可以被多次使用。