【发布时间】:2018-12-13 09:29:19
【问题描述】:
我读到 Android Handler 可用于与Looper 主线程通信以发布将与视图交互的消息(因为只有主线程可以与那里的视图交互)
但我经常看到类似下面示例的代码在主线程中运行Handler。为什么这是一个好主意,除非有像postDelayed(new Runnable()...这样的延迟
对此的任何解释都会很好
public class TaleDemoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
new Handler().post(new Runnable() {
@Override
public void run() {
new Handler().post(new Runnable() {
@Override
public void run() {
new Tale("Hello runnables!").tell();
}
});
new Handler().post(new Runnable() {
@Override
public void run() {
new Tale("Hello runnables!").at().tell();
}
});
}
});
new Handler().post(new TestRunnable());
new Handler().post(new TestStaticRunnable());
new Handler().post(new TestAbstractRunnable() {
@Override
public void run() {
new Tale("Hello abstract runnable!").tell();
}
});
new Handler().post(new TestInterfaceRunnable() {
@Override
public void run() {
new Tale("Hello test interface runnable!").tell();
}
});
new Tale().at().tell();
}
class TestRunnable implements Runnable {
@Override
public void run() {
new Tale("Hello testRunnable!").tell();
}
}
static class TestStaticRunnable implements Runnable {
@Override
public void run() {
new Tale("Hello testStaticRunnable!").tell();
}
}
abstract class TestAbstractRunnable implements Runnable {
}
interface TestInterfaceRunnable extends Runnable {
}
}
【问题讨论】:
-
你从哪里得到这个代码?它包含在处理程序中!没有人应该那样编程。
-
刚刚在 GitHub 上阅读代码并在那里找到了它