- 在平时的项目开发过程中,会碰到这样的需求:在执行某个目标行为时,要通过前置的种种校验。
- for example:要进入到某个界面或者执行某项功能时,要进行用户是否登录进行判断,如果登录则进入目标界面,反之,则进入登录界面,登录成功后进入到目标界面
- 看文字很抽象?新建个流程撸出来看看
基本执行流程:
看下效果:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.1170762202:LxCheckAction:1.0.1'
}
LxAction.getInstance()
.addAction(new Action() {
@Override
public void doAction() {//校验成功跳转到订单详情界面
startActivity(new Intent(MainActivity.this, OrderActivity.class));
}
})
.addValid(new LoginValid(this))//登录校验
.doCheck();
public class LoginValid implements Valid {
private Context context;
public LoginValid(Context context) {
this.context = context;
}
@Override
public boolean check() {
//自行校验,判断用户本地
return MainActivity.isLogin;
}
@Override
public void doValid() {
//进入登录界面
context.startActivity(new Intent(context, LoginActivity.class));
}
}
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
public void login(View view) {
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
MainActivity.isLogin = true;
//注意登录成功后执行doAction,继续校验
LxAction.getInstance().doCheck();
finish();
}
}