我说的是一个线程。例如,我有一个 Activity ui 和以下方法:
/* TOP LEVEL OF EXECUTION LOOPER NOW WORKING */
class MyActivity extends Activity {
void onCreate(Bundle instance) {
super.onCreate(instance);
setContentView(R.layout.activity_main);
doComplicatedStuff();
}
void doComplicatedStuff() {
// Doing stuf
}
void onClick() {
// Process event
}
void anyOtherMethod() {
/* NOT TOP LEVEL OF EXEUCTION, LOOPER NOW CAN'T WORK */
}
}
/* TOP LEVEL OF EXECUTION, LOOPER NOW WORKING */
所以我的问题是,doComplicatedStuff() 是否可以被 onClick() 处理程序的执行中断(当然,我们有一个点击按钮)?
现在我认为 onClick() 处理程序不能中断 doComplicatedStuff() 执行,直到 doComplicatedStuff() 结束其工作。因为在代码执行的顶层我们有一个 Looper,它接受下一个消息事件并将其分派给 Handler(handler 然后调用 onClick() 方法)。换句话说,Looper 仅在该线程中没有任何执行方法时才执行您的工作。