我正在尝试在单击按钮时运行某些方法,然后转到下一个活动,如下所示:
Clicked Ok button -> func1() -> func2() -> funky() -> move to next activity
我似乎无法理解我该怎样做才能使这种模式发挥作用?
注意: func1,func2,funky是异步的
我已经尝试过EventBus模式,但是这种模式需要每个event
一个额外的类我知道这个简单的任务不会那么昂贵
答案 0 :(得分:2)
按钮点击 - 这是异步的(在某种程度上; onClick
内的代码在按钮点击之前不会被调用)。你在这里做什么?您等待直到按下按钮,然后执行任务func1()
。
func1()
- 同样的想法。在任务完成时实现回调,然后执行func2()
冲洗,重复。
伪码:
button.setOnClickListener(
new OnClickListener() { // This is a callback anonymous class
public void onClick(View v) { // Think of this as a callback method
func1(
new Func1Callback() { // Callback anonymous class
public void onFunc1Complete() { // Callback method
func2(
// Repeat
);
}
});
}
});
显然,这可以重构以删除嵌套,这是EventBus库的好处。