运行 使用 AA 按顺序执行异步任务?

Run Asynchronous Tasks in Order using AA?

我正在尝试 运行 单击按钮然后移动到下一个 activity 的某些方法,如下所示:

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

我似乎不明白我应该怎么做才能让这个模式起作用?

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

我已经尝试过 EventBus 模式,但该模式需要 1 个额外的 class 来构成每个 event 我知道这个简单的任务不会那么昂贵

按钮点击 - 这是异步的(在某种程度上;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 库的优势所在。