DelayAction
DelayAction copied to clipboard
The design and implementation of the target method pretest model. 目标方法前置检验模型设计与实现,应用于所有需要在目标操作前插入N个前置验证条件的情况(如:登录后自动执行关注、登录后继续上次的发帖操作...
DelayAction 目标方法前置检验模型
一、需求背景
在执行目标行为时,需要执行一些前置的行为。而这些前置行为,需要用户参与才能完成。例如:未登录情况下点击关注用户,跳转登陆,登陆成功后自动执行关注。
二、如何使用
- 无嵌套调用(常用场景,单Action):
ActionActivity
实现Action
接口,或 new Action
实现类,实现 call 目标行为。
SingleCall.getInstance()
.addAction(ActionActivity.this)
.addValid(new LoginValid())//前置条件,可能有多个
.addValid(new OtherValid()
.doCall();
前置行为完成后,调用SingleCall.getInstance().doCall();
启动验证模型
- 嵌套调用(多Action):
Call call1 = new Call(new Action() {
@Override
public void call() {
}
});
Call call2 = new Call(new Action() {
@Override
public void call() {
}
});
callUnit1.addValid(new LoginValid());
callUnit1.addValid(new AnotherValid());
callUnit2.addValid(new OtherValid());
MultipleCall.getInstance()
.postCall(call1)
.postCall(call2);
前置行为完成后,调用MultipleCall.getInstance().reCheckValid();
启动验证模型
三、架构设计
本项目在 jinyb09017 大大的基础上完善
- 增加了容错处理
- 补充了嵌套 Call 的情况