0

我试图在单击按钮时运行一些方法,然后移动到下一个活动,如下所示:

Clicked Ok button -> func1() -> func2() -> funky() -> move to next activity

我似乎无法理解我应该怎么做才能使这种模式起作用?

注意: func1 、 func2 、 funky 是异步的

我尝试过 EventBus 模式,但该模式需要 1 个额外的类,event我知道这个简单的任务不会那么昂贵

4

1 回答 1

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 库的优势所在。

于 2016-08-20T21:38:10.100 回答